当前位置:  技术问答>java相关

如何设定“确定”和“取消”按钮的退出属性?(昨日未解决,今日重问)在线等待

    来源: 互联网  发布时间:2015-06-11

    本文导语:  我自己扩展了一个JDialog的对话框,是定义给其它Frame调用的,上面添加有一些控件和两个按钮:“确定”和“取消”按钮。(我两个按钮的按下响应都有退出该对话框功能) 现在问题来了,就是dispose()退出该对话框...

我自己扩展了一个JDialog的对话框,是定义给其它Frame调用的,上面添加有一些控件和两个按钮:“确定”和“取消”按钮。(我两个按钮的按下响应都有退出该对话框功能)
现在问题来了,就是dispose()退出该对话框后,我怎么判断该话框的退出是因为点击“确定”按钮还是“取消”按钮还是点击窗口关闭“×”而退出的?
比如用JOptionPane的帮助里面就有这种例子:     
     JOptionPane pane = new JOptionPane(arguments);
     pane.set.Xxxx(...); // Configure
     JDialog dialog = pane.createDialog(parentComponent, title);
     dialog.show();
     Object selectedValue = pane.getValue();
通过JOptionPane.YES_NO_OPTION参数生成的JDialog,就可以利用上面selectedValue的值来判断:如selectedValue为“YES”就是按钮“YES”退出,为“NULL”就是“×”退出……。

现在我就想问我该如何才能设置这个自定义的对话框的类似按钮的退出值selectedValue ?(听说似乎是设置按钮的某个属性……)
包括三个:确定按钮、退出按钮和窗口“×”退出

搞java的兄弟救命啊!!!!(若不行帮我问问也好)
我弄了两天都没搞定,提问有人说用个BackInfo变量,定义getBackInfo()方法取值,但是我试过,通过按钮dispose后这个变量的值还是默认的,根本没有改变!!

救命啊

|
你没有返回值的原因是dialog.show()在主frame里面会继续往下执行
所以需要在你扩展JDialog里面(不妨为NewDialog),构造函数最好带上参数(Frame owner, boolean modal)//modal为真是就是在调用这个dialog时主页面不可选……,也就是主页面里面的程序不会继续往下执行,类似showModalDialog
另外你要返回按钮的属性值来判断是哪个按钮退出。这很好办。
在主Frame里面重写按钮的事件,即写一个class extends NewDialog吧(扩展你自己写的哪个Dialog)。
比如在你的主frame里面定义一个String bakeInfo;
  class NewDialogInfo extends NewDialog{
    public NewDialogInfo (Frame owner, boolean modal) {
      super(owner, modal);
    }
    void jBOK_actionPerformed(ActionEvent e) {
      backInfo = "OK";
      this.dispose();
    }
  }
需要调用NewDialog的时候使用:
    backInfo = "NO";
    NewDialogInfo newd = new NewDialogInfo(this, true);
    sumi.show();
按确定退出,backInfo就会置成OK,我试过,可以成功。

|
在你的程序里面加一个变量private int returnCode = -1 ;//按整个Dialog右上的"关闭"
当按下"确定",returnCode = 0 ;
当按下"取消", returnCode = 1 ;
这样三种状态不就确定下来了嘛

|
U can read the sources of JDK  ,It how to get the SelectValue

 JDialog dialog = pane.createDialog(parentComponent, title);
     dialog.show();
     Object selectedValue = pane.getValue();

|
这样,你把你的代码贴上来,!!!

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问我编译c++文件的时候需要设定系统变量,设定是在root用户的.bash_profile文件中写的,怎么使该设定生效?
  • 怎样设定bsh的环境变量?(快来拿分呀) iis7站长之家
  • 在启动时设定网络参数,急!在线等!
  • 我有个问题 关于linux 网卡设定
  • 请问如何设定tomcat的session的失效时间
  • 请教:关于named的设定文档的问题
  • 嵌入式Linux 如何设定 telnet超时
  • 求助!ccmake中的CMAKE_BUILD_TYPE不能设定!
  • 请教各位:apach/conf/httpd.conf修改设定值的问题.
  • 怎样设定bsh的环境变量?(快来拿分呀)
  • 100分求救!!!如何设定网卡IRQ及i/地址?
  • 如何设定队列的长度、接受个数 ????
  • 在程序中如何设定可用^C或^D中断进程 ??????
  • cvs用户的权限设定
  • 如何设定ResultSet对象可上下fetch?
  • vi编辑中如何设定tab的空格数??
  • 如何设定LINUX下VSFTPD服务匿名登陆的默认目录
  • udp套接字能否设定成非阻塞模式?
  • red hat linux工作站如何设定屏幕刷新率?
  • 用iptables设定禁止ping 后,重启电脑后又会生效,


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3