Хм, прошло немного времени, но насколько я помню ...
Если вы хотите создать собственное окно, вы можете просто создать новый фрейм и отобразить его так же, как и в главном окне.В Java также есть отличная библиотека диалогов, которую вы можете проверить здесь:
Как создавать диалоги
Это может дать вам ту функциональность, с которой вы ищетенамного меньше усилий.
Object[] possibilities = {"ham", "spam", "yam"};
String s = (String)JOptionPane.showInputDialog(
frame,
"Complete the sentence:\n"
+ "\"Green eggs and...\"",
"Customized Dialog",
JOptionPane.PLAIN_MESSAGE,
icon,
possibilities,
"ham");
//If a string was returned, say so.
if ((s != null) && (s.length() > 0)) {
setLabel("Green eggs and... " + s + "!");
return;
}
//If you're here, the return value was null/empty.
setLabel("Come on, finish the sentence!");
Если вы не хотите ограничивать выбор пользователя, вы можете либо использовать форму метода showInputDialog, которая принимает меньше аргументов, либо указать значение null для массива объектов.В стиле Java замена пустых возможностей приводит к диалогу, который имеет текстовое поле и выглядит следующим образом: