在JDialog中设置条件

时间:2019-04-03 07:58:25

标签: java jpanel jdialog

我试图将条件放在JDialog中,以检测其中的两个按钮是否被禁用。达到此条件时,我还需要关闭对话框,所以我发现了2个问题。示例代码:

    public static String windowvisitAlert(JButton but, JButton but2, String message1, String message2) throws Exception, Exception {
    String n = "";
    Object[] options = {but, but2};
    Object a = message1;
    JOptionPane pane = new JOptionPane(a, JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION, null, options, options[0]);
    JDialog dialog = pane.createDialog(message2);
    dialog.setContentPane(pane);
    dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
    dialog.setSize(new Dimension(450, 10));
    dialog.pack();
    dialog.setVisible(true);
    return n;
}

这是从JPanel选项创建JDialog的方法。我们有2个按钮和2个“消息”,它们只能确定对话框窗口的名称。

我试图放:

if (but.isEnabled()==false && but2.isEnabled()==false) {
dialog.setVisible(false);
}else{
dialog.setVisible(true);}

此方法还将返回值n,所以我不知道条件在其中将如何工作。

我在哪里实现此方法:

public void actionPerformed(ActionEvent e) {
                    final JButton but = new JButton("VISITA");
                    final JButton but2 = new JButton("RESPONSABLE");
                    try {

                        ActionListener actionListener2 = new ActionListener() {
                            public void actionPerformed(ActionEvent actionEvent) {
                                //action performed
                            }

                        };
                        ActionListener actionListener = new ActionListener() {
                            public void actionPerformed(ActionEvent actionEvent) {
                                //action performed
                            }

                        };
                            but.addActionListener(actionListener2);
                            but2.addActionListener(actionListener);
                            Alerts.windowvisitAlert(but, but2, Gui.getProperties().getProperty("text"), Gui.getProperties().getProperty("text"));

                    }catch (Exception ex) {
                        sc.functionSavingInLog(Utils.getClassInfo(Thread.currentThread().getStackTrace()[1]), ex.toString());
                        System.out.println(Utils.getClassInfo(Thread.currentThread().getStackTrace()[1]) + ex);
                    }
                    }

这实际上不起作用,所以我的问题是:

-如何使这种情况起作用,并在JDialog碰到它时使其关闭?

如果没有,我该如何更改方法或只是做jpanel?

0 个答案:

没有答案