java 用按钮关闭子窗口,不要关闭主窗口
我设计了一个界面,点击相应的按钮后弹出子窗口,我想要这样的效果,子窗口弹出后主窗口不能操作,同时我又在子窗口的一个关闭按钮上写代码关闭子窗口,我用了System.exit...
我设计了一个界面,点击相应的按钮后弹出子窗口,我想要这样的效果,子窗口弹出后主窗口不能操作,同时我又在子窗口的一个关闭按钮上写代码关闭子窗口,我用了System.exit(0)这种方法不行,一点击就全部关闭了,请问这代码要咋个写啊,点击该按钮后关闭子窗口同时能操作主窗口,最主要的要子窗口弹出后主窗口不能被操作!
我说各位是没看问题还是不会啊,你们说的是窗体隐藏,这个不用你们说我也懂! 展开
我说各位是没看问题还是不会啊,你们说的是窗体隐藏,这个不用你们说我也懂! 展开
8个回答
展开全部
如果是按你主题来说。他们的说法没有错。
子画面关闭就是隐藏起来,不能实现真正的消毁,你的主线程不停止,它就会存在。
System.exit(0)就是停止了主线程。
你还提到了,想让主画面不能操作,那么子画面就是一个模态的对话框。
下边是一个测试代码,你运行一下看看效果。
--------------------------------------------------------------------------------------------------------------
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class Close extends JFrame {
private JDialog dialog = new JDialog();
public Close() {
getContentPane().setLayout(null);
JButton btnTest = new JButton("Test");
JButton btn = new JButton("close");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.dispose();
// dialog.setVisible(false);
}
});
dialog.add(btn);
dialog.setModal(true);
dialog.setSize(150, 80);
dialog.setLocationRelativeTo(getContentPane());
btnTest.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(true);
}
});
btnTest.setBounds(27, 26, 91, 21);
getContentPane().add(btnTest);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(200, 120);
setResizable(false);
setVisible(true);
}
public static void main(String[] args) {
new Close();
}
}
子画面关闭就是隐藏起来,不能实现真正的消毁,你的主线程不停止,它就会存在。
System.exit(0)就是停止了主线程。
你还提到了,想让主画面不能操作,那么子画面就是一个模态的对话框。
下边是一个测试代码,你运行一下看看效果。
--------------------------------------------------------------------------------------------------------------
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class Close extends JFrame {
private JDialog dialog = new JDialog();
public Close() {
getContentPane().setLayout(null);
JButton btnTest = new JButton("Test");
JButton btn = new JButton("close");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.dispose();
// dialog.setVisible(false);
}
});
dialog.add(btn);
dialog.setModal(true);
dialog.setSize(150, 80);
dialog.setLocationRelativeTo(getContentPane());
btnTest.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(true);
}
});
btnTest.setBounds(27, 26, 91, 21);
getContentPane().add(btnTest);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(200, 120);
setResizable(false);
setVisible(true);
}
public static void main(String[] args) {
new Close();
}
}
2011-12-23
展开全部
子窗口用JDialog,然后setModal(true);
退出时dispose
退出时dispose
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
XXX.dispose()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询