Как получить JOptionPane с тремя текстовыми полями - PullRequest
6 голосов
/ 28 апреля 2010

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

Как это:

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

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

Ответы [ 5 ]

3 голосов
/ 28 апреля 2010

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

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

}
1 голос
/ 28 апреля 2010

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

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

1 голос
/ 28 апреля 2010

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

1 голос
/ 28 апреля 2010

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

0 голосов
/ 08 февраля 2012

Стандартный пример учебного курса по Java можно найти здесь:

Нажмите здесь, чтобы открыть пример файла Java

В примере есть только одно текстовое поле, но этот пример достаточно ясен для его расширения.

...