Java:showInputDialog 中的自定义按钮
Posted
技术标签:
【中文标题】Java:showInputDialog 中的自定义按钮【英文标题】:Java: Custom Buttons in showInputDialog 【发布时间】:2012-10-31 07:33:38 【问题描述】:如何向 JOptionPane.showInputDialog 的按钮添加自定义文本?
我知道这个问题JOptionPane showInputDialog with custom buttons,但它没有回答所提出的问题,它只是将它们引用到 JavaDocs,它没有回答它。
到目前为止的代码:
Object[] options1 = "Try This Number",
"Choose A Random Number",
"Quit";
JOptionPane.showOptionDialog(null,
"Enter a number between 0 and 10000",
"Enter a Number",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
options1,
null);
我想为此添加一个文本字段。
【问题讨论】:
您能否进一步扩展您的要求。另外,你目前有什么? 引用 javadocs(至少在这种情况下)是正确的答案。别人已经写过的就不用在这里写了。 【参考方案1】:您可以使用自定义组件代替字符串消息,例如:
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TestDialog
public static void main(String[] args)
Object[] options1 = "Try This Number", "Choose A Random Number",
"Quit" ;
JPanel panel = new JPanel();
panel.add(new JLabel("Enter number between 0 and 1000"));
JTextField textField = new JTextField(10);
panel.add(textField);
int result = JOptionPane.showOptionDialog(null, panel, "Enter a Number",
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE,
null, options1, null);
if (result == JOptionPane.YES_OPTION)
JOptionPane.showMessageDialog(null, textField.getText());
【讨论】:
你如何获得输入的值? @ZuluDeltaNiner 来自面板中的文本字段。请查看上次编辑。 如果只是提示,没有文本框,怎么可能得到结果? @CardinalSystem 您可以使用JOptionPane.showInputDialog()
的变体之一。有关示例,请参阅Getting the User's Input from a Dialog。
如何添加带有快捷键(热键)的按钮并执行相应功能的操作【参考方案2】:
看看How to Make Dialogs: Customizing Button Text。
下面是一个例子:
Object[] options = "Yes, please",
"No, thanks",
"No eggs, no ham!";
int n = JOptionPane.showOptionDialog(frame,//parent container of JOptionPane
"Would you like some green eggs to go "
+ "with that ham?",
"A Silly Question",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,//do not use a custom Icon
options,//the titles of buttons
options[2]);//default button title
【讨论】:
以上是关于Java:showInputDialog 中的自定义按钮的主要内容,如果未能解决你的问题,请参考以下文章
调整showInputDialog textarea的大小?
如何更改 JOptionPane.showInputDialog 中按钮的默认文本
错误:找不到符号 -- EC=Character.parseChar(JOptionPane.showInputDialog("enter employee code"));