我有一个自定义 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
?我的程序中的某个地方需要它
您可以直接将 jbutton 传递给 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);
我在这里找到了解决方案:关闭由 JOptionPane.showOptionDialog() 创建的对话框:)