zmiana tekstu JLabel z innej klasy

0

Witam, mam problem ;) Mam JLabel w osobnym panelu, metodę setText która zmienia tekst w nim wyświetlany i wszystko byłoby cudnie, gdyby nie fakt, że po wywołaniu tej metody z innej klasy tekst w JLabelu zostaje niezmieniony. Oto kod klasy zawierającej JLabela:

class Msg extends JPanel{
	private JLabel lab;
	public Msg(){
	lab = new JLabel();
       	add(lab);
	}
	
	public void setText (String s){
		lab.setText(s);
	}
}

a setTexta wywołuje np. z takiej klasy:

class Paneldol extends JPanel{
	private nowyJTextField poletxt;
	public Paneldol(){
		DocumentListener sluchacz = new Sluchacz();
		poletxt = new nowyJTextField(30);
		add(poletxt);
		poletxt.getDocument().addDocumentListener(sluchacz);
	}
	
	private class Sluchacz implements DocumentListener{
		private Msg m = new Msg();
		public void insertUpdate(DocumentEvent z){ m.setText(poletxt.getText()); }
		public void removeUpdate(DocumentEvent z){ m.setText(poletxt.getText()); }
		public void changedUpdate(DocumentEvent z) {}
	}
}

Jak zrobić żeby ten burak wyświetlał co mu każe? :D Albo znacie może jakiś inny sprytny sposób na wyświetlanie komunikatów czy innych pierdółek? JLabel mi się o tyle podoba, że można tam htmla wsadzić :)

0

w listenerze masz:
private Msg m = new Msg();
i za każdym razem tworzy ci się nowy JPanel, ale ty go nigdzie nie dodajesz do formy, on istnieje tylko w pamięci, więc nic ci się nie zmieni.........
powinieneś zadeklarować Msg gdzieś na początku metody, dodać fo frame'a a w listerzerze jedynie wywoływać setText
np: private Msg m = new Msg();
add(m,"gdzieChcesz");
a potem w listenerze m.setText("Cośtam");

a co do komunikatów to polecam JOptionPane
to są różnego typu wyskakujące alerty ect

1 użytkowników online, w tym zalogowanych: 0, gości: 1