JOptionPane.showInputDialog
OKボタンとCANCELボタンのテキストを自分の文字列 に設定したい。
でボタンのテキストを変更する方法はありますが、でJOptionPane.showOptionDialog
変更する方法が見つかりませんでしたshowInputDialog
。
JOptionPane.showInputDialog
OKボタンとCANCELボタンのテキストを自分の文字列 に設定したい。
でボタンのテキストを変更する方法はありますが、でJOptionPane.showOptionDialog
変更する方法が見つかりませんでしたshowInputDialog
。
単一のinputDialogだけに使用したくない場合は、ダイアログを作成する前にこれらの行を追加してください
UIManager.put("OptionPane.cancelButtonText", "nope");
UIManager.put("OptionPane.okButtonText", "yup");
ここで、「yup」と「nope」は表示するテキストです
以下のコードでは、ダイアログが表示され、ボタンのテキストを で指定できます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.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"});
ダイアログの作成方法: ボタンテキストのカスタマイズ を参照してください。
Google で「カスタム テキスト JOptionPane」を検索すると、この回答が明らかになりました https://stackoverflow.com/a/8763349/975959