各位大侠,写一段代码实现jButton实现关闭JDialog
功能和点击右上角关闭的红叉叉实现的一模一样,也就是说点击按钮就触发了那个红叉叉执行的代码。
不需要写触发器,其实就是几行代码。
可以随便写出自己的方法,只要能有效果  。

解决方案 »

  1.   

    Jbutton click
    JDialog close
      

  2.   


    setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
      

  3.   

    不是不看中,给jbutton监听click事件,jdialog应该有close方法呢,调用下就行了吧。
      

  4.   


    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class DialogDemo extends JFrame{
    private JButton button=new JButton("打开");
    private JDialog dialog=new JDialog(this);
    private TextField textField=new TextField(10);
                JButton  btn=new JButton("close");;

    public DialogDemo(String title){
    super(title);
    textField.setEditable(true);
    button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ae){                dialog.add(btn);
                    dialog.pack();
    dialog.setVisible(true);
    // textField.setText(dialog.getText());
    }
    });
            btn.addActionListener(new ActionListener(){
                 public void actionPerformed(ActionEvent ae){
                    dialog.dispose(); //这一行代码就可以关闭对话框
                 }
            });

    Container contentPane=this.getContentPane();
    contentPane.setLayout(new FlowLayout());
    contentPane.add(button);
    contentPane.add(textField);
    setSize(500,300);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    new DialogDemo("DialogDemo");
    }}
      

  5.   

    需要引入jquery框架:
    <script type="text/javascript">
    $(function() {
      $('#editDialog').dialog({
        autoOpen:false,
        width:'80%',
        modal : true,
        buttons:{
          "保存":function(){},
          //点击取消键dialog就会关闭
          "取消":function(){$('#editDialog').dialog("close")}
        }
      });
    });
    </script><body>
      <div id="editDialog" title="修改界面" style="display:none"></div>
    </body>
      

  6.   

    最近看了一条消息,仅供参考。如何去掉 JDialog 标题中的 "关闭"按钮,这个事情我查了很多资料包括国外的论坛。基本的结论就是:没有简单的办法。
    一般的方法就是:调用 this.setUndecorated(true) 这个方法把标题栏也去掉了。如果需要标题栏,只能自己写一个了,具体方法网上查查吧。
    另外一个简单的方式,保留“关闭”按钮,但是不生效,setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); 这个就可以做到。
    如果不是有特别要求,我建议采用后一种方法,简单。
    另外一点,就是如何使用程序 “关闭”一个对话框。有两种方法:1 setVisible(false)这种关闭不彻底,并没有销毁资源,内存依然占用。
    2 setVisible(false); 再调用dispose() 这样就销毁资源了。
      

  7.   


    import java.awt.Dimension;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;public class Test extends JFrame implements ActionListener{ private static final long serialVersionUID = 1L;

    private JButton btntest;

    public Test(){
    super("按钮时间测试");
    btntest=new JButton("Click Me");
    btntest.addActionListener(this);
    getContentPane().add(btntest);
    this.setSize(88, 88);
    Dimension winSize=Toolkit.getDefaultToolkit().getScreenSize();
    setLocation((winSize.width-this.getWidth())/2,(winSize.height-this.getHeight())/2);
    } @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getSource().equals(btntest)){
    JOptionPane.showMessageDialog(null, "OK!");
    }
    }

    public static void main(String[] args) {
    new Test().setVisible(true);
    }
    }
      

  8.   

    感觉楼主的这个命题和需要的答案有所区别嘛……楼主说:
    功能和点击右上角关闭的红叉叉实现的一模一样,也就是说点击按钮就触发了那个红叉叉执行的代码。首先我们要看看点击了右上角的按钮会发生什么,才能做到一样效果对不?
    但是,实际上右上角的那个X点了之后会发生什么也不是一定的
    setDefaultCloseOperation 之后,区别如下:
    DO_NOTHING_ON_CLOSE:点了之后什么都不做 
    HIDE_ON_CLOSE:点了之后 setVisible(false) —— 默认值
    DISPOSE_ON_CLOSE:点了之后 dispose()既然有三种不同的结果,那效果怎么能统一而论呢?
    楼主说:触发了那个红叉叉执行的代码
    那是希望然那个x按钮 doClick() ?
    这个 JDialog 是重量级的控件,他的边框包括按钮都是系统级的东西
    在程序中你是无法获得这个“x按钮”的引用的,java 没有提供这个方面的接口
    就算获得了又怎么样? 这又不是一个 JButton,没有 doClick() 可以让你调用你想让一个 JButton 完美的模拟那个X按钮,
    就也应该根据三种不同情况去触发不同的代码
    switch (getDefaultCloseOperation()) {
    case JDialog.DO_NOTHING_ON_CLOSE:
    break;
    case JDialog.DISPOSE_ON_CLOSE:
    dispose();
    break;
    case JDialog.HIDE_ON_CLOSE:
    default:
    setVisible(false);
    break;
    }
      

  9.   

     button.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent ae){                System.exit(0);
                }
            });
      

  10.   

    话说当年第一次见到JButton时邪恶了一把,嘿嘿试着用中文来读一下
      

  11.   


    哥 System.exit(0);连虚拟机都给关了。