监听器不使用Modal Dialog

时间:2014-08-18 11:29:53

标签: jdialog

我的意图 - 创建一个框架,添加一个按钮。单击该按钮时,会出现一个带有自定义按钮和文本字段的模态对话框。从此对话框中获取用户输入。关闭对话框并将值传递给帧控件。

问题 - 我在创建无模式对话框时成功实现了这一点,但这不适用于模态对话框:

使用时,无模式对话框,单击对话框上的OK按钮,将值传递给框架并关闭对话框。但是当将对话框设置为modal = true时,对话框上的OK按钮不起作用

我用过的代码:

JButton diabtn = new JButton("Dialog");
    diabtn.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae){

            final JDialog dialog = new JDialog((JFrame)null,"Dia Window",true); 



            dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
            dialog.setSize(350,200);


            JLabel dialbl1 = new JLabel("Enter your name");
            JButton diaok = new JButton("OK");
            final JTextField diatxt = new JTextField(20);
            diaok.setSize(60,60);
            dialog.setLayout(new FlowLayout());
            dialog.add(dialbl1);
            dialog.add(diatxt);
            dialog.add(diaok);
            dialog.setVisible(true);

// adding listener for button on the dialog

            diaok.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ae){
            String tempval = diatxt.getText();
            lblDialogValue.setText(tempval);
            dialog.dispose();

        }
        }); 

        }
        }); 

1 个答案:

答案 0 :(得分:0)

我不是Java专家,但对于你所说的内容有一些佐证:.setvisible()之后的代码仅在对话框关闭后执行。 See reference