我想知道是否可以将JTextField添加到ShowOptionDialog框中。
int optionChosen = JOptionPane.showOptionDialog(finishPayInput,
dialogPanel, "The Title", JOptionPane.NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options , options[0]);
当我运行程序时,会显示对话框,但JTextField不会显示。
答案 0 :(得分:0)
您无法首先向JOptionPane.showOptionDialog
添加文本字段参数是父组件而不是子组件。
请参阅documentation:
public static int showOptionDialog(Component parentComponent, 对象消息, 字符串标题, int optionType, int messageType, 图标图标, 对象[]选项, 对象initialValue) 抛出HeadlessException
打开一个带有指定图标的对话框,其中包含初始选项 由initialValue参数确定并且选择的数量是 由optionType参数确定。如果optionType是 YES_NO_OPTION,或YES_NO_CANCEL_OPTION,选项参数为 null,然后选项由外观提供。
messageType参数主要用于提供默认图标 从外观和感觉。参数:parentComponent - 确定 显示对话框的框架;如果为null,或者如果为 parentComponent没有Frame,默认的Frame是usedmessage - object to displaytitle - dialogoptionType的标题字符串 - 一个整数,指定对话框中可用的选项: DEFAULT_OPTION,YES_NO_OPTION,YES_NO_CANCEL_OPTION或 OK_CANCEL_OPTIONmessageType - 指定类型的整数 这是消息,主要用于确定来自的图标 可插拔的外观:ERROR_MESSAGE,INFORMATION_MESSAGE, WARNING_MESSAGE,QUESTION_MESSAGE或PLAIN_MESSAGEicon - 图标来 在对话框中显示 - 指示对象的对象数组 用户可以做出的选择;如果对象是组件, 它们被正确呈现;使用非呈现非String对象 他们的toString方法;如果此参数为null,则选项为 由Look and FeelinitialValue决定 - 对象 表示对话框的默认选择;只有有意义 选项用于;可以为nullReturns:表示该选项的整数 用户选择,或者如果用户关闭,则选择CLOSED_OPTION dialogThrows:HeadlessException - 如果GraphicsEnvironment.isHeadless 返回true参见:GraphicsEnvironment.isHeadless()
答案 1 :(得分: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);