当前位置: 代码迷 >> J2SE >> JAVA事件,该怎么解决
  详细解决方案

JAVA事件,该怎么解决

热度:91   发布时间:2016-04-24 00:48:28.0
JAVA事件
public class E4 extends JFrame{
private JDialog jd;
private JButton jb;
private JLabel jl;
public E4(){
  JFrame jf=new JFrame("事件");
jb=new JButton("开始");
jl=new JLabel("结果");
jd=new JDialog(this,"对话框",true);
jd.setBounds(200,200,200,200);
JTextField jta=new JTextField("");
String s=jta.getText();
jl.setText(s);
jb.addActionListener(new MyListener());
jf.setLayout(new FlowLayout());
jf.add(jb);
jd.add(jl);
jf.add(jta);
setBounds(400,400,400,400);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(400,400);
jf.setVisible(true);
}
class MyListener implements ActionListener{
public void actionPerformed(ActionEvent e){
jd.setVisible(true);
}}
public static void main(String[] args) {
// TODO Auto-generated method stub
  new E4();
}

一个小练习,在文本域输入字符,然后在JDialog显示刚才输入的字符,可是这个程序的结果是JDialog没显示刚才输入的结果,求大神指点

------解决方案--------------------
应该在事件(MyListener)里对dialog的label赋值。


------解决方案--------------------
Java code
import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;public class E4 extends JFrame {    private JDialog jd;    private JButton jb;    private JLabel jl;    JTextField jta = new JTextField("");        public E4() {        JFrame jf = new JFrame("事件");        jb = new JButton("开始");        jl = new JLabel("结果");        jd = new JDialog(this, "对话框", true);        jd.setBounds(200, 200, 200, 200);                jta.setPreferredSize(new Dimension(100,20));        String s = jta.getText();        jl.setText(s);        jb.addActionListener(new MyListener());        jf.setLayout(new FlowLayout());        jf.add(jb);        jd.add(jl);        jf.add(jta);        setBounds(400, 400, 400, 400);        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        jf.setSize(400, 400);        jf.setVisible(true);    }    class MyListener implements ActionListener {        public void actionPerformed(ActionEvent e) {            jl.setText(jta.getText());            jd.setVisible(true);        }    }    public static void main(String[] args) {        // TODO Auto-generated method stub        new E4();    }}
------解决方案--------------------
你在监听器里面什么没有帮啊,只是设置为显示而已。
你需要在里面加上jl.setText(jta.getText()).
这样的话你的jta也要声明在构造方法以外
否则后面识别不了
------解决方案--------------------
楼主你好,你点按钮后进入到相应事件后,应该在响应事件中处理你所述的情况,所以响应事件中应该处理这两个情况,1.获得你输入文本域的内容,String mes=jta.getText();2。将得到的内容显示到对话框中,jl.setText(str);将这两句加入到响应事件中,当然这里你应该注意,把jta声明时放在构造函数外面,不然内部类无法访问
  相关解决方案