swing怎么关闭旧的窗口
时间: 2023-03-26 14:02:43 浏览: 100
您可以使用以下代码关闭旧的窗口:
```
oldFrame.dispose();
```
其中,oldFrame 是您要关闭的旧窗口的 JFrame 对象。使用 dispose() 方法可以释放窗口占用的资源并关闭窗口。
相关问题
JMenuItem按钮打开新窗口关闭旧窗口
可以通过在 JMenuItem 上添加 ActionListener 监听器,在监听器中创建新的 JFrame 对象,并在关闭旧窗口前先关闭当前窗口的方式实现。具体实现步骤如下:
1. 创建一个 JFrame 对象,设置其大小、标题等属性。
2. 向 JFrame 对象中添加需要显示的组件,如标签、按钮等。
3. 创建一个 JMenuItem 对象,设置其文本和快捷键等属性。
4. 为 JMenuItem 对象添加一个 ActionListener 监听器,当用户点击菜单项时,执行打开新窗口的操作。
5. 在 ActionListener 监听器的 actionPerformed() 方法中,创建一个新的 JFrame 对象,设置其大小、标题等属性,并显示出来。同时,关闭当前窗口。
下面是一个示例代码,用于演示如何通过 JMenuItem 打开新窗口并关闭旧窗口:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MainFrame extends JFrame {
private JMenuItem newFrameMenuItem;
public MainFrame() {
super("Main Frame");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
newFrameMenuItem = new JMenuItem("New Frame", 'N');
newFrameMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
newFrameMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 创建新的 JFrame 对象
JFrame newFrame = new JFrame("New Frame");
newFrame.setSize(300, 200);
newFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
newFrame.setVisible(true);
// 关闭当前窗口
dispose();
}
});
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
menu.add(newFrameMenuItem);
menuBar.add(menu);
setJMenuBar(menuBar);
getContentPane().add(new JLabel("Main Frame"));
pack();
setVisible(true);
}
public static void main(String[] args) {
new MainFrame();
}
}
```
运行该程序后,点击 "New Frame" 菜单项即可打开一个新的窗口并关闭旧窗口。
Java之GUI在一个窗口中打开新窗口,自动关闭旧窗口
好的,以下是使用 Java Swing 框架中的 JFrame 和 JButton 在一个窗口中打开新窗口并自动关闭旧窗口的代码:
```java
import javax.swing.*;
public class MainFrame extends JFrame {
private JButton openButton;
public MainFrame() {
super("主窗口");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
openButton = new JButton("打开新窗口");
openButton.addActionListener(e -> {
JFrame newFrame = new JFrame("新窗口");
newFrame.setSize(300, 200);
newFrame.setVisible(true);
dispose(); // 关闭旧窗口
});
JPanel panel = new JPanel();
panel.add(openButton);
add(panel);
setVisible(true);
}
public static void main(String[] args) {
MainFrame mainFrame = new MainFrame();
}
}
```
在上述代码中,我们创建了一个 `MainFrame` 类,继承自 `JFrame`,作为主窗口。在主窗口中,我们创建了一个 `JButton` 对象 `openButton`,并添加了一个监听器,当用户点击该按钮时,会创建一个新的 `JFrame` 对象 `newFrame`,作为新窗口。同时,在打开新窗口之前,我们调用了 `dispose()` 方法,关闭了旧窗口。
最后,我们将按钮添加到一个 `JPanel` 对象 `panel` 中,并将该面板添加到主窗口中,最终显示主窗口。
希望这个例子可以帮助你解决问题!