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

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

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

【问题讨论】:

    标签: java swing joptionpane


    【解决方案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】:

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 2017-04-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-03-22
            • 2016-01-18
            • 1970-01-01
            • 2015-02-27
            相关资源
            最近更新 更多