0

我有一个带有两个按钮的自定义 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()onAccept按钮?我在程序的某个地方需要它

4

2 回答 2

1

您可以直接将 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);
于 2011-06-24T12:01:20.657 回答
0

我在这里找到了解决方案:关闭由 JOptionPane.showOptionDialog() 创建的对话框:)

于 2011-06-24T12:49:38.050 回答