Wywołanie GUI z main a dostęp do komponentów Swing

0

Cześć,
piszę prostą aplikację graficzną i natknąłem się na następujące zagadnienie.

Mam trzy klasy:

  • zawierającą metodę main
  • klasę z gui rozszerzającą JFrame
  • klasę rozszerzającą wątek

z klasy głównej wołam tylko

public class MyMain {
    public static void main(String[] args) {
    	Gui myGui= new Gui();
    }
}

w klasie Gui mam pole testowe public static JTextArea textArea oraz podpiętego pod przycisk actionListenera za pomocą którego uruchamiam wątek. Jak z poziomu klasy wątku wpisać coś do textArea? Aktualnie odnoszę się poprzez Gui.textArea czyli po nazwie klasy. Czy skoro utworzyłem instancję klasy Gui w klasie głównej to czy nie powinienem odwoływać się do instancji tej klasy myGui.textArea? Jak to powinno być wywoływane i obsłużone "po Bożemu"?

0

Powinieneś do klasy wątku przekazać referencje do kontrolera twojego GUI.

0

Rółnież komponent JTextArea textArea nie powinien być statyczny.

0
Shalom napisał(a):

Powinieneś do klasy wątku przekazać referencje do kontrolera twojego GUI.

Obawiam się, że nie zrozumiałem... :/
do Gui jest implementowany ActionListener
i dla przycisku start wygląda on następująco:

startButton.addActionListener(this);
[...]
public void actionPerformed(ActionEvent e) {
	Object source = e.getSource();
	 
    if(source == startButton){
		try {
		    clientThread = new Klient();
		    clientThread.start();
		} catch (Exception e1) {
			textArea.append(e1.getMessage());
		}
    }
[...]

W jaki sposób do wątku mam przekazać referencję?

airborn napisał(a):

Rółnież komponent JTextArea textArea nie powinien być statyczny.

To w jaki sposób powinienem wystawić ten textArea? napisać osobną funkcję która będzie go obsługiwała po stronie klasy?

1

@cinek1105
lekcja na dziś: MVC / MVP
lekcja na jutro: Zasada jednej odpowiedzialności

0

Się robi :) Dzięki

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