0

showMessageDialog ダイアログ ボックスの X ボタンを選択したときにプログラムを終了させる方法を知りたいです。現在、これを行うたびに、単にコードの実行を続行するか、確認またはオプション ダイアログ ボックスの場合は [はい] オプションを選択します。この種のコマンドをダイアログ ボックスのコードに含めることはできますか? 例えば:

JOptionPane.showMessageDialog(null, "Your message here");

Xボタンでプログラムを閉じるように出力を編集するにはどうすればよいですか?

showMessageDialog を別の種類のダイアログ ボックスに変更する必要がありますか?

4

2 に答える 2

0

showMessageDialog()戻り値はありません。を使用した例を次に示しshowOptionsDialog()ます。

public class Test
{
    public static void main(String[] args){
        final JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        JButton button = new JButton("Test");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                int result = JOptionPane.showOptionDialog(null, 
                        "Your message here", "", JOptionPane.DEFAULT_OPTION, 
                        JOptionPane.PLAIN_MESSAGE, null, new String[] {"OK"}, "OK");
                if (result == JOptionPane.CLOSED_OPTION) {
                    frame.dispose();
                }
            }
        });

        panel.add(button);
        frame.setContentPane(panel);
        frame.pack();
        frame.setVisible(true);
    }
}
于 2012-11-05T22:28:23.490 に答える
0

これがあなたの望むものかどうかはわかりませんが、プログラムに確認ボックスを入れました:

    (...)
    import org.eclipse.swt.widgets.MessageBox;
    (...)
    createButton(buttons, "&Exit", "Exit", new MySelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent evt) {
            MessageBox messageBox = new MessageBox(getShell(), SWT.YES | SWT.NO | SWT.ICON_QUESTION);
            messageBox.setMessage("Are you sure?");
            messageBox.setText("Exit");
            if (messageBox.open() == SWT.YES) {
                getParent().dispose();
            }
        }
    });

オンラインのjavadoc(java 6)または(java 1.4)を見ると、別のオプションがあります。

直接使用:
JOptionPaneを直接作成して使用するための標準パターンは、おおよそ次のとおりです。

 JOptionPane pane = new JOptionPane(arguments);
 pane.set.Xxxx(...); // Configure
 JDialog dialog = pane.createDialog(parentComponent, title);
 dialog.show();
 Object selectedValue = pane.getValue();
 if(selectedValue == null)
   return CLOSED_OPTION;
 //If there is not an array of option buttons:
 if(options == null) {
   if(selectedValue instanceof Integer)
      return ((Integer)selectedValue).intValue();
   return CLOSED_OPTION;
 }
 //If there is an array of option buttons:
 for(int counter = 0, maxCounter = options.length;
    counter < maxCounter; counter++) {
    if(options[counter].equals(selectedValue))
    return counter;
 }
 return CLOSED_OPTION;
于 2012-11-05T21:56:44.243 に答える