从另一个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); } }