静的showXXXDialog()
メソッドは便宜上のものです。のソースコードを見ると、実際には、指定したオプションに基づいてオブジェクトが作成され、呼び出されJOptionPane
ていることがわかります。メッセージダイアログを別の位置に表示する1つの方法は次のとおりです。JOptionPane
JOptionPane.createDialog(...)
JOptionPane pane = new JOptionPane("Message", JOptionPane.WARNING_MESSAGE,
JOptionPane.DEFAULT_OPTION);
JDialog dialog = pane.createDialog("TITLE");
dialog.setLocation(0, 0);
dialog.setVisible(true);
// dialog box shown here
dialog.dispose();
Object selection = pane.getValue();
JOptionPane
コンストラクターへのパラメーターとJOptionPane
setメソッドを組み合わせることで、静的メソッドで行ったであろうすべてのことを実行でき、さらにJDialog
オブジェクト自体にアクセスできます。
編集:(OPの入力ダイアログの例を追加するため)
JOptionPane pane = new JOptionPane("Message", JOptionPane.QUESTION_MESSAGE,
JOptionPane.OK_CANCEL_OPTION, null, null, null);
pane.setWantsInput(true);
JDialog dialog = pane.createDialog(null, "Title");
dialog.setLocation(0, 0);
dialog.setVisible(true);
String str = (String) pane.getInputValue();