タイプJOptionPane
のshowInputDialog
を作成しました。それを開くと、2つのボタンが表示されます。 OK そして Cancel。押したときにアクションを処理したい Cancel ボタン、しかし私はそれに到達する方法がわかりません。どうすれば入手できますか?
例えば:
int n = JOptionPane.showConfirmDialog(
frame, "Would you like green eggs and ham?",
"An Inane Question",
JOptionPane.YES_NO_OPTION);
if (n == JOptionPane.YES_OPTION) {
} else if (n == JOptionPane.NO_OPTION) {
} else {
}
または、showOptionDialog
を使用します。
Object[] options = {"Yes, please", "No way!"};
int n = JOptionPane.showOptionDialog(frame,
"Would you like green eggs and ham?",
"A Silly Question",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[0]);
if (n == JOptionPane.YES_OPTION) {
} else if (n == JOptionPane.NO_OPTION) {
} else {
}
詳細は ダイアログの作成方法 を参照してください。
編集:showInputDialog
String response = JOptionPane.showInputDialog(owner, "Input:", "");
if ((response != null) && (response.length() > 0)) {
}
ShowMessageDialogは2つのボタンを表示しないようにする必要があるため、コードまたはコードの解釈に問題があります。いずれにしても、ユーザーに選択肢を与えてその選択肢を検出したい場合は、showMessageDialogではなくshowConfirmDialogを使用せずに、intを返してテストし、JOptoinPane.OK_OPTIONかどうかを確認します。
これは古い質問です。私はJava初心者なので、より良い解決策があるかもしれませんが、同じことを知りたかったのですが、他の人を助けることができるかもしれません。応答はnullでした。
ユーザーが「キャンセル」をクリックすると、応答はnullになります。テキストを入力せずに「OK」をクリックすると、応答は空の文字列になります。
これは私のために働きました:
//inputdialog
JOptionPane inpOption = new JOptionPane();
//Shows a inputdialog
String strDialogResponse = inpOption.showInputDialog("Enter a number: ");
//if OK is pushed then (if not strDialogResponse is null)
if (strDialogResponse != null){
(Code to do something if the user Push OK)
}
//If cancel button is pressed
else{
(Code to do something if the user Push Cancel)
}
あなたはこのようにすることができます:
String val = JOptionPane.showInputDialog("Value: ");
if(val == null){
// nothing goes here if yo don't want any action when canceled, or
// redirect it to a cancel page if needed
}else{
//insert your code if ok pressed
// JOptionPane return an String, as you was talking about int
int value = Integer.ParseInt(val);
}
package Joptionpane;
import javax.swing.JOptionPane;
public class Cancle_on_JOptionPane {
public static void main(String[] args) {
String s;
int i;
for (i=0;i<100;i++){
s = JOptionPane.showInputDialog(null,"What is your favorite fruit ?");
try {
if (s.equals("")) {
JOptionPane.showMessageDialog(null," Enter your answer !!!"," ^-^ Information^-^ ",JOptionPane.INFORMATION_MESSAGE);
i=2;
} else {
JOptionPane.showMessageDialog(null," s = "+s," ^-^ Information^-^ ",JOptionPane.INFORMATION_MESSAGE);
i=100;
}
}
catch (Exception e) {
JOptionPane.showMessageDialog(null,"Cancle answer !!!"," ^-^ Information^-^ ",JOptionPane.INFORMATION_MESSAGE);
i=100;
}
}
}
}