jdialog关闭不了

fladier 2008-01-06 08:05:13
class searchdlg extends JDialog implements ItemListener,ActionListener
{
Button btn2=new Button("取消");

public searchdlg(Frame df)
{
super(df,"查找",true);

df.add(btn2);
df.setSize(300,100);
df.setVisible(true);
this.setResizable(false);
this.setModal(true);
btn2.addActionListener(this);

}
public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand()=="取消")searchdlg.this.dispose();
}
}
我在这个jdialog中点击“取消”却怎么也不能关闭,点击右上角的“关闭”时可以关闭。
怎样才能点取消时也能关闭呢?
...全文
296 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fladier 2008-01-08
  • 打赏
  • 举报
回复
可以了,谢谢
fladier 2008-01-08
  • 打赏
  • 举报
回复
可是怎样该才能点取消关闭JDialog呢?
fladier 2008-01-08
  • 打赏
  • 举报
回复
这个是我的一个记事本程序中的查找对话框,由源程序调用。
没想到找出这么多不好的地方来,汗一个。
多谢多谢!
lzmailcn 2008-01-06
  • 打赏
  • 举报
回复
不怪楼上说你,你这程序写得...。
第一个错,df.add(btn2);
df.setSize(300,100);
df.setVisible(true); 所有的设置都是针对“所有者”,而不是对话框。按钮都加到“所有者”中了。把df改为this。
第二个错,ae.getActionCommand()=="取消"编译没有提示吗?改为ae.getActionCommand().equals("取消")。这可以原则错误。
第三个问题,this.add(btn2);
this.setSize(300,100);
this.setVisible(true);
this.setResizable(false);
this.setModal(true);
btn2.addActionListener(this);你不觉得逻辑有问题吗?最好是这样:
btn2.addActionListener(this);
df.add(btn2);
df.setSize(300,100);
this.setResizable(false);
this.setModal(true);
df.setVisible(true);
第四个问题,把df.setVisible(true); 放在构造函数里是一个糟糕的想法,把它拿掉。如果要测试,写一个main方法:
public static void main(String[] args){
searchdlg sd=new searchdlg(new javax.swing.JFrame());
sd.setVisible(true);
}


daimojingdeyu 2008-01-06
  • 打赏
  • 举报
回复
汗,这个程序写得生猛,取消按钮是在Frame上的,对话框是模态的,而且是没有显示出来的一个对话框。多亏没有显示出来,如果出来的话,真的不知道怎样才能点到那个取消按钮。

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧