从另一个JFrame点击按钮处理JFrame
很多人可能知道,我是一个完整的Java新手。 我已经尝试过研究这个(通过阅读StackOverflow上的其他post,谷歌搜索并询问一个不太喜欢java新手的朋友),但我无法弄明白。 答案可能很简单,但我对此视而不见。 我试图从不同的框架中处理JFrame
。
我的应用程序应该如下工作:
- 按下时,框架X有一个按钮:产生框架Y.
- 当按下时,框架Y有一个按钮:产生框架Z.
- 当按下时,框架Z有一个按钮:在处理框架Y和自身之前从框架Y执行方法。
获取框架Z以处置框架Y是我的大多数问题所在。 任何帮助是极大的赞赏。 理想情况下,帮助将以这样的方式表达,即使是婴儿也能理解(因为这是我的Java理解水平)。
我知道很多人会认为这是一个重复的问题,无论是这个问题还是其他问题 。 我认为这不是一个重复的问题,因为我已经阅读了两个并且不了解如何解决我自己的问题。
- 当按下时,框架Z有一个按钮:在处理框架Y和自身之前从框架Y执行方法。
帧Y和帧Z应该是modal dialog(至少Z应该是,也可能是Y)。
当对话框Y进入打开对话框Z(我们称之为dialogZ
)时,代码应该是这样的:
DialogZ dialogZ = new DialogZ(..); dialogZ.setVisible(true); this.setVisible(false); // at this point, dialogZ will have been closed
有关详细信息和示例代码,请参见如何在对话框中使用模态 。
(帧Z)…从帧Y 执行方法
帧Y和帧Z可能不应该扩展任何类。 相反,它们应该是根据需要使用的实例变量。
你可以在另一帧中保存对另一个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); } }