A. java swing 菜单打开与关闭子窗口
如果实现了你第一个问题,后面的就都不存在了。
锁住了主窗体,那么关闭操作,菜单点击都不可能操作了。
下边按问题一个一个解答,这是不考虑关联性的,如果考虑关联性。后两个不可能与1同时存在。
1. 这个使用Dialog而不是Frame Dialog有model属性,setModel(true); 这样就是模态对话框,后面的都不可以操作了。
2.窗体关闭时,使用System.exit(0); 这样,所有的就都关闭了。
3.打开一个新的,关闭已打开的,需要有前一个窗体的对象句柄。用可以设置成非显示。
B. java中如何使“点击子窗口的按钮时主窗口与子窗口同时关闭”
原来也遇到过这样的问题。 只要设置窗体的setDefaultCloseOperation方法就可以了。这个方法是描述关闭按钮的不同形式的,可以关闭一个窗口,也可以关闭整个程序
DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的 WindowListener 对象的 windowClosing 方法中处理该操作。
HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener 对象后自动隐藏该窗体。
DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。
EXIT_ON_CLOSE(在 JFrame 中定义):使用 Systemexit 方法退出应用程序。仅在应用程序中使用。
如果关闭程序的话就是
setDefaultCloseOperation(EXIT_ON_CLOSE)
希望能帮助到你:)
C. java关闭当前窗口代码
方法一:
类 JFrame
javax.swing.JFrame
JFrame中的方法void setDefaultCloseOperation(int)可以设置
以下为改方法的用法:
setDefaultCloseOperation
public void setDefaultCloseOperation(int operation)设置用户在此窗体上发起
"close" 时默认执行的操作。必须指定以下选项之一:
DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的
WindowListener 对象的 windowClosing 方法中处理该操作。
HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener
对象后自动隐藏该窗体。
DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener
的对象后自动隐藏并释放该窗体。
EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit
方法退出应用程序。仅在应用程序中使用。
默认情况下,该值被设置为 HIDE_ON_CLOSE。更改此属性的值将导致激发属性更改事件,其属性名称为
"defaultCloseOperation"。
注:当 Java 虚拟机 (VM) 中最后一个可显示窗口被释放后,虚拟机可能会终止
要实现你说的,应该采用
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
方法二:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Test extends JFrame {
public Test(){
this.setTitle("title");
this.setSize(300,200);
this.setLocation(100,100);
//设置关闭时什么也不做
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
//监听关闭按钮的点击操作
this.addWindowListener(new WindowAdapter(){
//new 一个WindowAdapter 类 重写windowClosing方法
//WindowAdapter是个适配器类 具体看jdk的帮助文档
public void windowClosing(WindowEvent e) {
//这里写对话框
if(JOptionPane.showConfirmDialog(null,
"退出","提
示",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION){
System.exit(0);
}
}
});
this.setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}
D. java Swing关闭子窗口
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame("swing test");
frame.setSize(300, 200);
frame.setLayout(null);
JButton btnNewFrame = new JButton("新窗口");
btnNewFrame.setBounds(30, 30, 80, 40);
frame.getContentPane().add(btnNewFrame);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭时,直接退出
btnNewFrame.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成
final JFrame frame = new JFrame("new frame");
frame.setSize(200, 180);
frame.getContentPane().add(new JLabel("this is a new frame"));
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
// TODO 自动生成
frame.dispose();//dispose会隐藏窗体并释放窗体所占用的部分资源
}
});
}
});
}
E. java 用按钮关闭子窗口,不要关闭主窗口
如果是按你主题来说。他们的说法没有错。
子画面关闭就是隐藏起来,不能实现真正的消毁,你的主线程不停止,它就会存在。
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();
}
}
F. JAVA中怎么关闭一个窗口
如果是add(XXX)那不就是在这个窗体里吗?
直接disopose()就好了.
要不就this.dispose();
=====================================
"谁告诉你add(XXX)和disopose()都要在reg类里.我就要是前者在,后者就不让他在reg类里,而且还要关闭reg类对象窗口.根本没理解我的意思.我说的够清楚了,你一眼带过看的明白吗,你再去看看我的题干."
又看了一遍 发现这次根本看不明白了...
=====================================
====================================
"this.dispose()我当然知道.但这句话在另一个类中写,试问this还表示reg的对象吗,显然不行的.我现在就要在另一个类中写.第二个人也是乱说,只有第一个回答可能正确,你们两个都在乱说."
如果是在另一个类中写就需要当前窗体当作参数传递.
import javax.swing.JFrame;
public class Reg extends JFrame {
/**
* 创建一个新的窗体
* */
public void newWindows(){
new newReg(this);//将自己传递给newReg这个窗口
}
}
这是另外一个窗体.
public class newReg extends JFrame{
public newReg(JFrame father) {//接收父窗口
father.dispose();
}
}
====================================
那是你思维跟我不一样.我已在reg类中用了好多句add(xxx);来添加组件.现在其对象窗口,包括里面的组建都能正常显示.
我现在想在另一个类中,比如mm类中用dispose()方法去关掉reg类窗口,我若是再用this.dispose()那this指的就是mm类的对象了.现在你懂了吧.你再回去看看我的题干对不对.再告诉我题干的答案.
====================================
问问题的都是爷.
问问题的都是爷.
问问题的都是爷.
问问题的都是爷.
问问题的都是爷.
问问题的都是爷.
"那是你思维跟我不一样."
你们全家思维都和别人不一样.
.别给我发消息了。问题已经给你解决了。
G. java如何设置关闭父窗口时关闭所有的子窗口
那要看父窗口和子窗口之间的联系,如果你设置的是setvisiable()那么关闭主窗口时,其他窗口设置为false,虽然窗口关闭了其实是隐藏起来了,你可以设当主窗口.dispost关闭
H. Java如何实现关闭一个窗口弹出另外一个窗口
在Java中,对窗口任何操作都会对应的监听事件,故要实现关闭一个窗口时弹出另外一个窗口,只需要在该关闭的窗口的监听事件中添加弹窗事件即可。
具体实现如下:
this.addWindowListener(new
WindowAdapter(){
@Override
public
void
windowClosing(WindowEvent
e)
{
setVisible(false);
new
JFrame("新窗口");
}});
在JavaGUI编程中,关闭窗口弹出新窗口是很常见的动作,比如一个窗口的业务操作完成了,需要跳转到另一个窗口继续执行,此时就需要关闭旧窗口并弹出新窗事件。值得注意的地方时,有时候的关闭往往只是暂时的将旧窗口暂时隐藏,而不是真的关闭,因为之后可能还会继续用到,为了节省开销,暂时的隐藏有利于提供效率。
I. 用java写的一个JPanel面板中弹出子窗口,当我关闭子窗口时,父窗口不关闭怎么做啊
//在子窗口添加一句。
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
//而不要用下面这句
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//补充
你是想在用户不点击右上角关闭按钮的情况下,关闭窗口。
那么参考xvqingya1所讲,用dispose();如果是在别处调用,请用子窗口的引用.disdpose();
J. Java如何关闭JFrame的其中一个子自定义窗口
1,XXX.dispose()方法吧!只关闭当前想要关闭的窗口,不影响其他窗口
2,JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);方法。
设置右上角的[x]为注销窗口。