java,gui,如何在多个弹窗的情况下,点击当前弹窗的一个按钮,会自动跳转到最初界面,请用代码实现,加注释
时间: 2023-09-24 12:11:24 浏览: 144
以下是一种实现方式,主要是利用 JFrame 的 setDefaultCloseOperation() 方法和 WindowAdapter 类:
```java
import java.awt.event.*;
import javax.swing.*;
public class MultipleWindowsDemo {
private JFrame mainFrame; // 最初的主界面
private JFrame[] popupFrames; // 多个弹窗
public MultipleWindowsDemo() {
prepareGUI();
}
public static void main(String[] args) {
MultipleWindowsDemo demo = new MultipleWindowsDemo();
demo.showPopupWindows();
}
private void prepareGUI() {
// 创建最初的主界面
mainFrame = new JFrame("Main Window");
mainFrame.setSize(400, 300);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建多个弹窗
popupFrames = new JFrame[3];
for (int i = 0; i < popupFrames.length; i++) {
popupFrames[i] = new JFrame("Popup Window " + (i+1));
popupFrames[i].setSize(200, 150);
popupFrames[i].setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
popupFrames[i].addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// 当弹窗关闭时,重新激活主界面
mainFrame.setVisible(true);
}
});
}
}
private void showPopupWindows() {
// 显示主界面
mainFrame.setVisible(true);
// 显示多个弹窗
for (JFrame popupFrame : popupFrames) {
popupFrame.setVisible(true);
}
// 在主界面上加一个按钮,点击时隐藏主界面并显示第一个弹窗
JButton button = new JButton("Show First Popup Window");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mainFrame.setVisible(false);
popupFrames[0].setVisible(true);
}
});
mainFrame.add(button);
}
}
```
代码中创建了一个最初的主界面和三个弹窗,为每个弹窗添加了一个 WindowAdapter 类作为监听器,当弹窗关闭时,会重新激活主界面。在主界面上加了一个按钮,点击时会隐藏主界面并显示第一个弹窗。
阅读全文