2011-05-19 79 views
2

想象一下這種情況。我有主要的JFrame窗口和另一個從主窗口彈出,通過按鈕單擊。如果我想通過單擊彈出窗口上的按鈕來重新繪製主窗口中的圖形,我應該怎麼做?重新繪製主框架

回答

1

彈出的窗口需要對主窗口的引用。因此,在彈出窗口的構造函數中,您將接受對主窗口的引用並將其保留直到需要。

在主窗口中,您可以編寫一個方法update(),該方法可以從彈出的窗口中調用,並使主窗口相應地重新繪製自己。例如:

PoppedUpWindow win = new PoppedUpWindow(this);//this is the main window 

,並在彈出窗口:

MainWindow mainWin; 
JButton btn; 

public PoppedUpWindow(MainWindow mwin){ 
    mainWin = mwin; 
    btn = new JButton("Click to Update"); 
    btn.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e){ 
       mainWin.update(); 
     } 
    }); 
} 
+0

如果兩個類已經由JFrame擴展是什麼?我的意思是,通過在主窗口中創建另一個PoppedUpWindow對象,在運行程序之後,它只彈出兩個Jframes。 – Medardas 2011-05-19 21:52:32

+0

同樣的事情適用。重點在於poppedupwindow需要對主窗口的引用。所以先創建主窗口,然後將它傳遞給poppedupwindow。 – 2011-05-19 23:14:33

+0

明白了,謝謝=] – Medardas 2011-05-20 13:22:55