Как использовать `doClick ()` на JOptionPane? - PullRequest
0 голосов
/ 24 июня 2011

У меня есть пользовательская панель JOptionPane с двумя кнопками следующим образом:

AgreementPanel panel = new AgreementPanel(this); // JPanel with some JLabels and JTextFields
JOptionPane pane = new JOptionPane(panel, JOptionPane.NO_OPTION);
Object[] options = {"Accept", "Decline"};
option = pane.showOptionDialog(null, panel, "Agreement", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, panel.txtMessage);

Как использовать кнопку doClick() на Accept?Мне это нужно где-то в моей программе

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Вместо передачи параметров в виде строк, вы можете напрямую передавать jbuttons методу showOptionDialog (). Внутренне он проверяет, является ли он кнопкой, а затем напрямую добавляет ее в область кнопок.

Так что сделайте что-то вроде этого:

JButton btnAccept = new JButton("Accept");
 Object[] options = {btnAccept , "Decline"};
btn.doClick();

Обратите внимание, что BasicOptionPaneUI позаботится о правильной проверке и добавлении кнопки.

ОБНОВЛЕНИЕ: вы можете установить actionListener вручную, если компонент непосредственно передан:

ActionListener al = ((BasicOptionPaneUI)optionPane.getUI()).new ButtonActionListener(1);
        btnAccept.setActionListener(al);
0 голосов
/ 24 июня 2011
...