2015-03-12 11 views
0

Мне было интересно, можно ли добавить JTextField в поле ShowOptionDialog.Добавление JTextField в JOptionPane: ShowOptionDialog

 int optionChosen = JOptionPane.showOptionDialog(finishPayInput,  
    dialogPanel, "The Title", JOptionPane.NO_OPTION,  
    JOptionPane.QUESTION_MESSAGE, null, options , options[0]); 

Когда я запускаю программу, в окне отображается диалоговое окно, но JTextField не отображается.

+0

Где находится 'JTextField'? – Jens

+0

@Jens На передней панели: finishPayInput –

ответ

0

Вы не можете добавить текстовое поле к JOptionPane.showOptionDialog. Параметр - это родительский компонент, а не дочерний компонент.

Смотрите documentation:

открытых статические INT showOptionDialog (компонент parentComponent, сообщения Object, Строка названия, INT optionType, INT MessageType, значка Icon, Object [] опция, объекта initialValue) throws HeadlessException

Выводит диалог с указанным номером ico n, где исходный выбор равен , определяемому параметром initialValue, а количество вариантов - , определяемое параметром optionType. Если параметр optionType равен YES_NO_OPTION или YES_NO_CANCEL_OPTION, а параметр options - null, тогда параметры предоставляются внешним видом.

Параметр messageType используется в основном для отображения значка по умолчанию . Параметры: parentComponent - определяет Кадр, в котором отображается диалог; если нуль, или если parentComponent не имеет рамки, по умолчанию Компоновка кадра является usedmessage - объекта в displaytitle - заголовок строки для dialogoptionType - целое обозначая доступные в диалоговом окне опции: DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION, или OK_CANCEL_OPTIONmessageType - целое число, обозначающее типа сообщения это, в первую очередь используются для определения значка из сменных Внешнего вида и: ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE или PLAIN_MESSAGEicon - значок на дисплей в dialogoptions - массив объектов, указывающий возможные варианты, которые пользователь может сделать; если объекты являются компонентами, они отображаются правильно; объекты non-String визуализируются с использованием методов toString ; если этот параметр равен нулю, то параметры определяются Look и FeelinitialValue - объект, который представляет собой выбор по умолчанию для диалога; только имеет смысл, если используется ; может быть nullReturns: целое число, указывающее параметр , выбранный пользователем, или CLOSED_OPTION если пользователь закрыл dialogThrows: HeadlessException - если GraphicsEnvironment.isHeadless возвращает trueSee также: GraphicsEnvironment.isHeadless()

0

Да, конечно , простое решение:

JTextField txt = new JTextField(); 
JOptionPane.showOptionDialog(null, finishPayInput, "The Title", JOptionPane.NO_OPTION, 
       JOptionPane.QUESTION_MESSAGE, null, null, null); 

Однако, если вы хотите, чтобы отобразить JTextField (для получения ввода пользователя), лучшей идеей было бы использовать JOptionPane.showInputDialog:

JOptionPane.showInputDialog(null, "Insert value: ", "The title", JOptionPane.QUESTION_MESSAGE); 
Смежные вопросы