Вопрос по java, swing – JOptionPane с несколькими входами на разных линиях

5

Я хотел бы создатьJOptionPane это позволяет пользователю выбрать IP-адрес и порт для подключения. Это должно быть структурировано как таковое,

IP Address: [textfield here]

Port: [textfield here]

Cancel OK

Метки должны быть выровнены по левому краю, а текстовые поля также должны быть выровнены по левому краю. Я действительно не могу смоделировать раскадровку здесь, но в основном текстовые поля не должны быть выровнены, даже если между метками и текстовыми полями есть пробел.

Каждая пара метки и текстового поля должна быть в отдельных строках, а кнопки «Отмена» должны быть выровнены вправо под текстовыми полями.

Есть ли способ сделать это в коде?

What have you tried? user1329572
@ user1329572 Я пробовал код изhere но это помещает все поля в одну строку и смещает кнопки «Отмена» и «ОК». swiftcode

Ваш Ответ

2   ответа
4

Создайте пользовательский диалог (jdialog) или используйте JOptionPane.showInputDialog, см. Этот учебник:

http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

10

этот пример это похоже на макет.

The example Right align

Выровняйте по правому краю текст в метках, который, я думаю, выглядит лучше, используя это:

labels.add(new JLabel("User Name", SwingConstants.RIGHT));

Для выровненного по левому краю текста измените его на:

labels.add(new JLabel("User Name"));
Improvement

Это делается с использованием вложенного макета,GridLayout случаи вWEST а такжеCENTER изBorderLayout.

Это может быть лучше сделано с использованием более мощного макета, такого какMigLayout или более современный макет J2SE, такой какBoxLayout или жеGroupLayout.

GroupLayout может обеспечить тип выравнивания, в котором нуждается этот интерфейс, не растягиваяCENTER поля такой же ширины (что также можно исправить во вложенной компоновке, как указано выше, но требуется еще 2 ограничивающие панели). Я полагаю, что другие двое тоже могли бы выполнять эту работу, но у них нет такого большого опыта работы с ними.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded swiftcode

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