读书人

jButton事件(简单快速拿分)散分解决

发布时间: 2012-01-16 23:36:51 作者: rapoo

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

[解决办法]

[解决办法]
Jbutton click
JDialog close
[解决办法]
不是不看中,

给jbutton监听click事件,jdialog应该有close方法呢,调用下就行了吧。
[解决办法]

Java code
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");    }}
[解决办法]
需要引入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>
[解决办法]

[解决办法]
Java code
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);    }}

[解决办法]
感觉楼主的这个命题和需要的答案有所区别嘛……

楼主说:
功能和点击右上角关闭的红叉叉实现的一模一样,也就是说点击按钮就触发了那个红叉叉执行的代码。

首先我们要看看点击了右上角的按钮会发生什么,才能做到一样效果对不?
但是,实际上右上角的那个X点了之后会发生什么也不是一定的
setDefaultCloseOperation 之后,区别如下:
DO_NOTHING_ON_CLOSE:点了之后什么都不做
HIDE_ON_CLOSE:点了之后 setVisible(false) —— 默认值
DISPOSE_ON_CLOSE:点了之后 dispose()

既然有三种不同的结果,那效果怎么能统一而论呢?
楼主说:触发了那个红叉叉执行的代码
那是希望然那个x按钮 doClick() ?
这个 JDialog 是重量级的控件,他的边框包括按钮都是系统级的东西
在程序中你是无法获得这个“x按钮”的引用的,java 没有提供这个方面的接口
就算获得了又怎么样? 这又不是一个 JButton,没有 doClick() 可以让你调用

你想让一个 JButton 完美的模拟那个X按钮,
就也应该根据三种不同情况去触发不同的代码

Java code
        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;        }
[解决办法]
我觉得楼主的意思应该是 按钮x点击之后会使窗口关闭 楼主想要的就是这样的效果 即单击按钮会执行自己编写的代码 关闭按钮只是楼主举的一个例子罢了 所以请参考我以上简单易懂的的代码 即单击一个按钮执行自己编写的代码
[解决办法]
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){

System.exit(0);
}
});

[解决办法]
话说当年第一次见到JButton时邪恶了一把,嘿嘿试着用中文来读一下
[解决办法]
探讨

button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){

System.exit(0);
}
});

[解决办法]
探讨

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

读书人网 >J2SE开发

热点推荐