许多人可能知道,我是一个完整的Java新手。我已经尝试过研究这个(通过阅读StackOverflow上的其他帖子,谷歌搜索并询问一个不太喜欢java新手的朋友),但我无法弄明白。答案可能很简单,但我对此视而不见。我试图从不同的框架中处置JFrame
。
我的应用程序应该按如下方式运行:
获取框架Z以处置框架Y是我的大多数问题所在。 任何帮助是极大的赞赏。理想情况下,帮助将以这样的方式表达,即使是婴儿也能理解(因为这是我的Java理解水平)。
我知道很多人会认为这是this question或this other question的重复问题。我认为这不是一个重复的问题,因为我已经阅读了这两个问题,并且还没有理解如何解决我自己的问题。
答案 0 :(得分:2)
- 框架Z有按钮,按下时:在放置框架Y和自身之前从框架Y执行方法。
帧Y和帧Z应该是模态对话框(至少Z应该是,也可能是Y)。
当对话框Y进入打开对话框Z(我们称之为dialogZ
)时,代码应该是这样的:
DialogZ dialogZ = new DialogZ(..);
dialogZ.setVisible(true);
this.setVisible(false); // at this point, dialogZ will have been closed
有关详细信息和示例代码,请参阅How to Use Modality in Dialogs。
(第Z帧)...... 从第Y帧执行方法
第Y帧和第Z帧可能 不 扩展任何类。相反,它们应该是根据需要使用的实例变量。
答案 1 :(得分:0)
你可以在另一帧中保持对另一个jframe的引用。这个类看起来像这样:
构造函数采用一个jframe,应该从这个jframe控制。
class YourFrame {
public YourFrame(JFrame controlFrame){
//build the frame and a button, which action listener calls controlFrame.setVisible(false);
JFrame f = new JFrame();
f.setSize(800, 600);
JPanel content = new JPanel();
JButton button = new JButton();
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
controlFrame.setVisible(false);
}
}
content.add(button);
f.add(content);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}