java给JFrame添加Dialog对话框,无法实现点击对话框中按钮后对话框消失,而主框体不受影响,代码如下
addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){dclose.set...
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dclose.setVisible(true);
}
});
byes.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
bno.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dclose.setVisible(false);//单击了bno按钮后主框体也消失,若此处换成dispose(),整个程序都会退出,若换为setDefaultoperation(DO_NOTHING_ON_EXIT),点击按钮没任何反应
}
}); 展开
public void windowClosing(WindowEvent e) {
dclose.setVisible(true);
}
});
byes.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
bno.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dclose.setVisible(false);//单击了bno按钮后主框体也消失,若此处换成dispose(),整个程序都会退出,若换为setDefaultoperation(DO_NOTHING_ON_EXIT),点击按钮没任何反应
}
}); 展开
1个回答
展开全部
你要手动的判断用户点的是确认还是取消,你说的这个意思,我写过一个,贴给你看看哈
public void exit() {
// 弹出对话框,警告文件为保存,提示是否保存
int choice = JOptionPane.showConfirmDialog(jframe, "文件已修改,是否保存?",
"提示", JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
switch (choice) {
case JOptionPane.YES_OPTION:// 选择“是”
saveAs();// 另存为
break;
case JOptionPane.NO_OPTION:// 选择“否”
System.exit(0);// 退出
break;
case JOptionPane.CANCEL_OPTION:// 选择“取消”
break;
}
}
在你的windowClosing和actionPerformed方法内部,调用上面的方法,或者直接把方法体弄进去就可以了,也就是说,你必须要判断用户选择的是yes还是no,并作出相应的处理。求个采纳
public void exit() {
// 弹出对话框,警告文件为保存,提示是否保存
int choice = JOptionPane.showConfirmDialog(jframe, "文件已修改,是否保存?",
"提示", JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
switch (choice) {
case JOptionPane.YES_OPTION:// 选择“是”
saveAs();// 另存为
break;
case JOptionPane.NO_OPTION:// 选择“否”
System.exit(0);// 退出
break;
case JOptionPane.CANCEL_OPTION:// 选择“取消”
break;
}
}
在你的windowClosing和actionPerformed方法内部,调用上面的方法,或者直接把方法体弄进去就可以了,也就是说,你必须要判断用户选择的是yes还是no,并作出相应的处理。求个采纳
追问
不成啊。点击了“否”和“取消”整个程序都终止了。关键问题在于点击了某个按钮后什么语句能够仅对对话框操作而主框体不受影响。之前用Frame,用setVisible就可以轻松实现,可是JFrame好像很难搞,主框体总是受影响,不知道你有没有遇到这个问题呢
追答
主窗口不会受影响的呢,可能是你的代码的问题,先吃饭,晚上给你看看吧,进5044群5871,@尘末 找我
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询