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

我想将JOptionPane.showInputDialog的OK和CANCEL按钮的文本设置为我自己的字符串。

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

如果您希望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"}); 

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

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

其中’是’和’不’是你想要显示的文字

下面的代码应该出现一个对话框,您可以在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

请参阅如何制作对话框:自定义按钮文本 。