Java: JLabel erscheint nicht

Der nette Eddie

Captain Special
Mitglied seit
14.09.2002
Beiträge
218
Renomée
0
Standort
Bremen
Hallo!
Also, ich hab was in Jave geschrieben, bin da eher noch Anfänger ;)...

Zuerst erstelle ich einen JFrame, da pack ich u.a. eine TabbedPane rein, dann kommt

Fenster.pack();
Fenster.setVisible( true );

und erst danach, im Zuge eines Buttonklickes,

JLabel Ding = new JLabel( "<html><b>TEST!</b></html>" );
Fenster.getContentPane().add( Ding );

Doch das JLabel erscheint nicht sofort, sondern erst wenn man im Fenster in der TabbedPane auf nen anderen Tab wechselt, wobei das ja eigentlich nix miteinander zu tun hat... aber dann wird halt wohl der Frame aktualisiert und der PC merkt "Hey, da ist ja noch ein Label... das hab ich ja ganz vergessen!"...
Auch ein

Fenster.repaint();

oder

Fenster.getContentPane().repaint();

bringt nix, man muss immer noch erst den Tab wechseln...
Kann mir da vielleicht jemand helfen? Ich möchte nämlich, wenn man auf so Buttons klickt, mehrere JLabels nachträglich adden, wobei es umständlich wäre immer erst die Tabs wechseln zu müssen nur um die zu sehen ;)

Gruß, Julian
 
Also ich kenn mich mit Java GUIs nicht besonders aus, aber warum hast du dem Label denn HTML gegeben?
 
Naja, icht wollt das halt mal ausprobieren, und die Darstellung ist kein Problem, das zeigt dann fetten Text an, daran liegt es leider nicht :(
 
Servus,

Fenster.getContentPane().add( Ding );

wenn Du nen TabbedPane hast solltest du die Labels auf die jeweiligen Registerkarten des TabbedPanes einfügen, nicht in das contentPane des JFrames.

also sowas hier:
zuerst Tab zum TabbedPane hinzufügen, dieses wiederum ins contentPane des JFrames packen:

PHP:
mPanel1 = new JPanel();
mTabPane.addTab("Tab 1", null, mPanel1, "Nimmt Buttons auf");
getContentPane().add(mTabPane);

dann im Listener deines Buttons der die Labels hinzufügen soll:
PHP:
JLabel b = new JLabel("Tach");
mPanel1.add(b);
repaint();
das repaint() ist hier zwingend notwendig!

Gruß, Ingo
 
Ah, danke, nun geht es... ich hab das nach Devilman noch mal neu geschrieben und dann automatisch mitangegeben, WO das Label hinsoll, also .add(b, "North"), quasi... und dann ging es! Dann hab ich das "North" mal weggemacht und siehe da, ging nimmer...
Danke danke :)

edit: die Rechtschreibfehler rausgemacht, die meine Euphorie so produzierte...
 
Zurück
Oben Unten