Статические showXXXDialog()
методы только для удобства.Если вы посмотрите на исходный код JOptionPane
, то обнаружите, что в действительности объект 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
методов установки, вы можете делать все, что вы делали сстатические методы, плюс у вас есть доступ к самому объекту JDialog
.
EDITED : (добавить пример диалога ввода для 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();