2011-05-19 80 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