Avatar billede aocc Nybegynder
01. juni 2004 - 16:48 Der er 9 kommentarer og
1 løsning

createImageIcon med tekst under billede

Nu har jeg søgt hele Java's API igennem og kan ikke finde noget.
testlabel= new JLabel("Dette er en test",icon,JLabel.RIGHT);
Dette skriver man hvis man skal ha tekst "right".
Men hvad skriver man hvis den skal være i bunden af billedet.??? Det er ikke BOTTOM og det er ikke SOUTH.!!!
Avatar billede soreno Praktikant
01. juni 2004 - 16:59 #1
Fra docs:
public JLabel(String text,
              Icon icon,
              int horizontalAlignment)

    Creates a JLabel instance with the specified text, image, and horizontal alignment. The label is centered vertically in its display area. The text is on the trailing edge of the image.

    Parameters:
        text - The text to be displayed by the label.
        icon - The image to be displayed by the label.
        horizontalAlignment - One of the following constants defined in SwingConstants: LEFT, CENTER, RIGHT, LEADING or TRAILING.


Så det er vel CENTER du søger ?
Avatar billede Slettet bruger
01. juni 2004 - 17:03 #2
Jeg tror du bliver du bliver nødt til at lave det vha. 2 JLabels og et JPanel, noget i stil med (kodesnip):

JPanel centerHolder = new JPanel(new BorderLayout());
centerHolder.add(new JLabel(new ImageIcon("sti til mit ikon"), BorderLayout.CENTER));
centerHolder.add(new JLabel("Dette er en test"), BorderLayout.CENTER));

derefter kan du tilføje centerHolder, det var bare en ide ;-)
Avatar billede Slettet bruger
01. juni 2004 - 17:04 #3
VRØVL!.... sorry.....

Panel centerHolder = new JPanel(new BorderLayout());
centerHolder.add(new JLabel(new ImageIcon("sti til mit ikon"), BorderLayout.CENTER));
centerHolder.add(new JLabel("Dette er en test", JLabel.CENTER), BorderLayout.SOUTH));

dette burde virke MEGET bedre ;-) hehe
Avatar billede aocc Nybegynder
01. juni 2004 - 17:07 #4
Teksten er stadig på højre side...(RIGHT) Har prøvet både med CENTER,LEADING og TRAILING
Avatar billede Slettet bruger
01. juni 2004 - 17:12 #5
ok, jeg har lige selv lavet et lille eksempel, compilet det og kørt det.... det fungerer ....:


import javax.swing.*;
import java.awt.*;

/**
* Class for testing
*/
public class Test extends JFrame {   
    public Test() {
        JPanel centerHolder = new JPanel(new BorderLayout());
        centerHolder.add(new JLabel(new ImageIcon("resources/graphics/ack.gif")), BorderLayout.CENTER);
        centerHolder.add(new JLabel("Dette er en test", JLabel.CENTER), BorderLayout.SOUTH);

        getContentPane().add(centerHolder);
    }

    public static void main(String[] args) {
        Test thisTest = new Test();
        thisTest.setSize(400, 300);
        thisTest.show();
    }
}
Avatar billede Slettet bruger
01. juni 2004 - 17:13 #6
altså hvis du har en gif-fil som hedder "ack.gif" der ligger i den relative sti: "resources/graphics/"
Avatar billede aocc Nybegynder
01. juni 2004 - 22:15 #7
Hvad hvis man vil lave det uden et layout, altså hvor man selv definere placeringen?
Avatar billede Slettet bruger
01. juni 2004 - 22:29 #8
så skal du blot kalde

centerHolder.setLayout(null);

og for hver komponent du så tilføjer kalder du først:

minKomponentAtTilfoeje.setBound(x, y, width, height);

og til sidst tilføjer du den til dit panel.
Avatar billede aocc Nybegynder
01. juni 2004 - 22:46 #9
takker.svar?
Avatar billede Slettet bruger
01. juni 2004 - 22:49 #10
Hovsa... det er da også rigtigt :-)

Svar !

(Og takker for point)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester