Kann JLabel in JFrame nicht aktualisieren

xip

Bekanntes Mitglied
Hallo,

sorry für die Frage, aber ich wundere mich gerade selber.

Habe ein JFrame mit einem JLabel das auf ihm angezeigt wird. Jetzt möchte ich wenn ich auf einem JButton drücke das dann das JFrame mit dem neuen JLabel (was jetzt ein ICON hat) angezeigt wird. So klappt es gerade nicht.

Java:
class gui extends JFrame
{
   JLabel label = new JLabel("hallo");
   JButton knopf = new JButton("Label ändern");

   gui()
  {
     ...
     		but_knopf .addActionListener(new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent arg0) 
			{
				label  = new JLabel("hallo du da!!!!!")
				validate();
				repaint();
			}	
		});
     ...
  }
}

Habt ihr da eine Idee?

Dank euch.
 
Möchtest du wirklich ein neues JLabel oder nur einen anderen Text darauf? Dann würde doch auch ein einfaches label.setText() reichen, denke ich. Dafür braucht man nicht einmal repaint() aufrufen.

Warum steht da eigentlich but_knopf, wenn der JButton knopf heißt? Hmmm…
 
anderenfalls hat es für die GUI offensichtlich keine Auswirkung wenn du in einer beliebigen Klasse eine beliebige Variable neusetzt,
du musst auch aus dem übergeordneten JPanel das alte JLabel entfernen und das neue adden,

validate();
repaint();
danach sind allerdings vorbildliche Befehle 😉
 
dank dir,

ja, das mit dem but_ ist ein fehler. sorry,

das JLabel soll jetzt ein Bild bekommen. Desshalb wollte ich das objekt neue machen.
 

Zurück
Oben