Javaで(JOptionPane.showInputDialog)内(「キャンセル」)ボタンに特定のアクションを割り当てる方法?
-
25-09-2019 - |
質問
ここでは、短いサンプルコードで私の質問があります:
double num = 0.00;
try
{
num = Double.parseDouble(JOptionPane.showInputDialog("Enter your num:"));
}
catch (Exception e)
{
System.err.println("Error: Invalid Input!");
JOptionPane.showMessageDialog(null, "Error: Invalid Input!",
"Error", JOptionPane.ERROR_MESSAGE);
}
//Validate the num
if (num > 0.0 && num <= 1000.00)
{
functionA();
}
else if (deposit <= 0.0 || deposit > 1000.00)
{
System.err.println("Error: out of range");
}
*ザ・問題は、上記のコードで、私は「キャンセル」ボタンをクリックすると、プログラムは両方のエラーが当たっているということです。(範囲外と無効な入力を)
私はこの問題を解決することができますどのようにしてください任意の提案ですか?
事前に感謝します。
解決
まず、あなたが入力がnullであるかどうかを確認する必要があります。ない場合は、それにparseDoubleを使用します。
このように:
try
{
String i = JOptionPane.showInputDialog("Enter your num:");
if (i != null)
num = Double.parseDouble(i);
}
また、あなたがやったように、「例外」を置くことによって、例外をキャッチしないようにしてみてください。常にあなたが可能な限り探している例外を指定してみてください。 この場合は、あなたの代わりにだけ例外のNumberFormatExceptionがを使用する必要があります。
catch (NumberFormatException e)
{
System.err.println("Error: Invalid Input!");
JOptionPane.showMessageDialog(null, "Error: Invalid Input!",
"Error", JOptionPane.ERROR_MESSAGE);
}
他のヒント
package org.life.java.so.questions;
import java.text.ParseException;
import javax.swing.JOptionPane;
/**
*
* @author Jigar
*/
public class InputDialog {
public static void main(String[] args) throws ParseException {
String input = JOptionPane.showInputDialog("Enter Input:");
if(input == null){
System.out.println("Calcel presed");
}else{
System.out.println("OK presed");
}
}
}
所属していません StackOverflow