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),点击按钮没任何反应
}
});
展开
 我来答
相知有术
2014-04-25 · TA获得超过311个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:176万
展开全部
你要手动的判断用户点的是确认还是取消,你说的这个意思,我写过一个,贴给你看看哈
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,@尘末 找我
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式