如何更改 JOptionPane.showInputDialog 中按钮的默认文本

Posted

技术标签:

【中文标题】如何更改 JOptionPane.showInputDialog 中按钮的默认文本【英文标题】:how to change the default text of buttons in JOptionPane.showInputDialog 【发布时间】:2013-01-02 16:30:08 【问题描述】:

我想在JOptionPane.showInputDialog中设置OK和CANCEL按钮的文字 到我自己的弦上。

有一种方法可以更改JOptionPane.showOptionDialog 中的按钮文本,但我找不到在showInputDialog 中更改它的方法。

【问题讨论】:

【参考方案1】:

如果您不希望它仅用于单个 inputDialog,请在创建对话框之前添加这些行

UIManager.put("OptionPane.cancelButtonText", "nope");
UIManager.put("OptionPane.okButtonText", "yup");

其中 'yup' 和 'nope' 是您要显示的文本

【讨论】:

如果您确实只想将它用于单个对话框,您可以随时将其更改回来。【参考方案2】:

如果你想要带有自定义按钮文本的 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");

【讨论】:

【参考方案3】:

下面的代码应该会出现一个对话框,您可以在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的这个链接上找到了解决方案@

【讨论】:

【参考方案4】:

请参阅How to Make Dialogs: Customizing Button Text。

【讨论】:

【参考方案5】:

在谷歌中搜索“自定义文本 JOptionPane”揭示了这个答案 https://***.com/a/8763349/975959

【讨论】:

以上是关于如何更改 JOptionPane.showInputDialog 中按钮的默认文本的主要内容,如果未能解决你的问题,请参考以下文章

更改模式时如何更改导航阴影颜色?

如何更改分区ID为AF?

更改标签文本时如何更改标签颜色

如何更改环境的字体大小?

如何使用 sqitch postgresql 验证更改列数据类型更改?

如何更改列表框项目的文本?