在从另一个 JFrame 单击按钮时放置一个 JFrame
Dispose a JFrame on button click from another JFrame
正如许多人可能知道的那样,我是一个完整的 Java 新手。我已经尝试对此进行研究(通过阅读 Whosebug 上的其他帖子、谷歌搜索并询问一位不是 java 新手的朋友),但我无法弄清楚。答案可能很清楚也很容易,但我对此视而不见。我正在尝试处理来自不同框架的 JFrame
。
我的应用程序应该按如下方式工作:
- 框架 X 有一个按钮,按下时:生成框架 Y
- 帧 Y 有一个按钮,按下时:生成帧 Z
- Z 帧有一个按钮,按下时:在处理 Y 帧及其自身之前执行来自 Y 帧的方法。
让框架 Z 处理框架 Y 是我的大部分问题所在。
任何帮助是极大的赞赏。理想情况下,帮助的措词连婴儿都能理解(因为那是我的 Java 理解水平)。
我知道很多人会认为这是 this question or this other question 的重复问题。我相信这不是一个重复的问题,因为我已经阅读了这两本书并且不明白如何解决我自己的问题。
您可以在另一个框架中保留对另一个 jframe 的引用。这个 class 可能看起来像这样:
构造函数取一个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);
}
}
- Frame Z has a button, when pressed: performs method from frame Y before disposing frame Y and itself.
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。
(Frame Z) … performs method from frame Y
Y 帧和 Z 帧可能 而不是 扩展任何 class。相反,它们应该是根据需要使用的实例变量。
正如许多人可能知道的那样,我是一个完整的 Java 新手。我已经尝试对此进行研究(通过阅读 Whosebug 上的其他帖子、谷歌搜索并询问一位不是 java 新手的朋友),但我无法弄清楚。答案可能很清楚也很容易,但我对此视而不见。我正在尝试处理来自不同框架的 JFrame
。
我的应用程序应该按如下方式工作:
- 框架 X 有一个按钮,按下时:生成框架 Y
- 帧 Y 有一个按钮,按下时:生成帧 Z
- Z 帧有一个按钮,按下时:在处理 Y 帧及其自身之前执行来自 Y 帧的方法。
让框架 Z 处理框架 Y 是我的大部分问题所在。 任何帮助是极大的赞赏。理想情况下,帮助的措词连婴儿都能理解(因为那是我的 Java 理解水平)。
我知道很多人会认为这是 this question or this other question 的重复问题。我相信这不是一个重复的问题,因为我已经阅读了这两本书并且不明白如何解决我自己的问题。
您可以在另一个框架中保留对另一个 jframe 的引用。这个 class 可能看起来像这样:
构造函数取一个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);
}
}
- Frame Z has a button, when pressed: performs method from frame Y before disposing frame Y and itself.
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。
(Frame Z) … performs method from frame Y
Y 帧和 Z 帧可能 而不是 扩展任何 class。相反,它们应该是根据需要使用的实例变量。