Как получить JOptionPane с тремя текстовыми полями

Я хочу знать, как я могу сделать messageBox из трех окон ввода значения..

Как это:

JOptionPane.showInputMessageDialog("Enter your FirstName");
JOptionPane.showInputMessageDialog("Enter your MiddleName");
JOptionPane.showInputMessageDialog("Enter your LastName");

Но я хочу одно сообщение, имеет три поля ввода.

6
задан Joachim Sauer 28 April 2010 в 13:11
поделиться

4 ответа

Создайте JPanel (предположим, что он называется inputPanel) с тремя полями JtextField для ввода, а затем выполните следующее:

if (JOptionPane.YES_OPTION == JOptionPane.showconfirmDialog(
    parentComponent, inputPanel, "Enter your data", JOptionPane.YES_NO_OPTION) {

    // retrieve data from the JTextFields and do things

} else {

    // User close the dialog, do things... or not

}
3
ответ дан 17 December 2019 в 04:43
поделиться

showInputMessageDialog и его собратья - простые способы создания простого «стандартного» диалога. Я уверен, что для более сложных диалогов вам придется создать подкласс JDialog или что-то подобное.

1
ответ дан 17 December 2019 в 04:43
поделиться

Вы не можете этого сделать с JOptionPane . Создайте JDialog и вместо него добавьте три JTextField . JDialog блокирует вызывающего, когда вы вызываете setVisible (true) , поэтому легко создать диалоговое окно, ожидающее ввода пользователя перед его возвратом.

1
ответ дан 17 December 2019 в 04:43
поделиться

Как предложил Telcontar, вы можете добавить компоненты Swing (например, JPanel) в панель опций. Таким образом, можно легко воспользоваться преимуществами автоматического создания кнопок, а не делать это с нуля, создавая свой собственный JDialog.

Однако есть одна небольшая проблема. Фокус будет находиться на первой кнопке, а не на первом компоненте вашей панели. Чтобы обойти эту проблему, вы можете попробовать решение, представленное в Dialog Focus.

1
ответ дан 17 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: