【发布时间】:2013-01-02 16:30:08
【问题描述】:
我想在JOptionPane.showInputDialog中设置OK和CANCEL按钮的文字
到我自己的弦上。
有一种方法可以更改JOptionPane.showOptionDialog 中的按钮文本,但我找不到在showInputDialog 中更改它的方法。
【问题讨论】:
标签: java swing joptionpane
我想在JOptionPane.showInputDialog中设置OK和CANCEL按钮的文字
到我自己的弦上。
有一种方法可以更改JOptionPane.showOptionDialog 中的按钮文本,但我找不到在showInputDialog 中更改它的方法。
【问题讨论】:
标签: java swing joptionpane
如果您不希望它仅用于单个 inputDialog,请在创建对话框之前添加这些行
UIManager.put("OptionPane.cancelButtonText", "nope");
UIManager.put("OptionPane.okButtonText", "yup");
其中 'yup' 和 'nope' 是您要显示的文本
【讨论】:
如果你想要带有自定义按钮文本的 JOptionPane.showInputDialog,你可以扩展 JOptionPane:
public class JEnhancedOptionPane extends JOptionPane {
public static String showInputDialog(final Object message, final Object[] options)
throws HeadlessException {
final JOptionPane pane = new JOptionPane(message, QUESTION_MESSAGE,
OK_CANCEL_OPTION, null,
options, null);
pane.setWantsInput(true);
pane.setComponentOrientation((getRootFrame()).getComponentOrientation());
pane.setMessageType(QUESTION_MESSAGE);
pane.selectInitialValue();
final String title = UIManager.getString("OptionPane.inputDialogTitle", null);
final JDialog dialog = pane.createDialog(null, title);
dialog.setVisible(true);
dialog.dispose();
final Object value = pane.getInputValue();
return (value == UNINITIALIZED_VALUE) ? null : (String) value;
}
}
你可以这样称呼它:
JEnhancedOptionPane.showInputDialog("Number:", new Object[]{"Yes", "No"});
【讨论】:
下面的代码应该会出现一个对话框,您可以在Object[] 中指定按钮文本。
Object[] choices = {"One", "Two"};
Object defaultChoice = choices[0];
JOptionPane.showOptionDialog(this,
"Select one of the values",
"Title message",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
choices,
defaultChoice);
另外,请务必查看 Oracle 网站上的 Java 教程。我在教程http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html#create的这个链接上找到了解决方案@
【讨论】:
在谷歌中搜索“自定义文本 JOptionPane”揭示了这个答案 https://stackoverflow.com/a/8763349/975959
【讨论】: