Сделать условие в JDialog - PullRequest
       41

Сделать условие в JDialog

0 голосов
/ 03 апреля 2019

Я пытаюсь поместить условное выражение в 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;
}

Это метод, который создает JDialog из опций JPanel. У нас есть 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?

...