0
我會試着用例子來說明我的問題,我試圖創建一個Java程序,它將(最終)併入一個複雜的Swing GUI。基本Java問題,類更新GUI
我Main.java
public class Main extends JFrame implements ActionListener {
JTextArea example;
public Main()
{
//... Missing, basic swing code
example = new JTextArea();
//... example added to jpanel, jpanel added to jframe, jframe set visible etc.
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equalsIgnoreCase("Do Something!"))
{
new DoSomething();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Main();
}
});
}
}
所以,現在,我希望我的DoSomething的()類來更新我的例子中的JTextArea,什麼是做到這一點的最好方法是什麼?
我可以將示例的引用傳遞給DoSomething(),所以DoSomething(示例),但這看起來不太好。我也可以將「this」傳遞給DoSomething()並在Main中實現一個updateExample(String newString)方法,但這看起來並不好。
基本上,達到我想要做的最好的方法是什麼?我寫的程序最終會比這個複雜得多,我看不到一種方法可以讓我在沒有太雜亂的情況下做到這一點。
輝煌,謝謝! – 2009-11-08 20:18:49
玩了這個之後,我發現觀察者不會被更新,除非我叫setChanged(); notifyObservers();之前 – 2009-11-08 23:56:03
你是對的我錯過了那部分。答案已更新 – 2009-11-09 16:38:31