0

次のように2つのボタンを持つカスタム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プログラムのどこかに必要です

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 に答える