2017-01-20 3 views
0

JOptionPaneを使用してユーザーが文字、文字列および空白を入力しないようにするにはどうすればよいですか?私は答えのためにインターネットを荒廃させたが、何も現れなかった。助けてください、私は3日以内にこれを行う必要があります。 はここに私のコードです:本のJOptionpaneを使用してユーザーが文字、文字列および空白を入力するのを防ぐ方法

int num, ctr, ctrodd=0, ctreven=0; 
for (ctr=1;ctr<=15;ctr++) 
{ 
    num=Integer.parseInt(JOptionPane.showInputDialog("Enter number ")); 

    if (!num.hasNextInt()) 
    { 
     JOptionPane.showMessageDialog(null,"That's not a number!"); 
     ctr--; 
     num.next(); 
    } 
    else if (num%2==0) 
    { 
     ctreven++; 
    } 
    else if (num%2==1) 
    { 
     ctrodd++; 
    } 
    ctr++; 
} 
JOptionPane.showMessageDialog(null,"Odd"+ctrodd+"\neven"+ctreven); 

答えて

1

Insetad:

if (!num.hasNextInt()) 
    { 
    JOptionPane.showMessageDialog(null,"That's not a number!"); 
    ctr--; 
    num.next(); 
    } 

これを試してみてください。

while (!num.hasNextInt()) 
{ 
JOptionPane.showMessageDialog(null,"That's not a number!"); 
num.next(); 
} 
+0

まだ動作しません –

0

あなたがJFormattedTextFieldにして持つMaskFormatterでJOptionPane.showOptionDialogを呼び出すことができます。 MaskFormatterは、個々の位置に入力できる文字の種類を制限することができます。

https://docs.oracle.com/javase/7/docs/api/javax/swing/text/MaskFormatter.html

のすべての文字を記述します。

このコードでは、最大4桁まで入力できます。

public static void main(String[] args) throws ParseException 
{ 
    JFormattedTextField field = new JFormattedTextField(new MaskFormatter(
      "####")); 
    field.setColumns(10); 
    field.setEnabled(true); 
    field.setEditable(true); 
    JOptionPane.showOptionDialog(null, "Message", null, 0, 0, null, 
      new Object[] 
      { field }, field); 
    System.out.println(field.getText()); 
} 
+0

これはif else文でどのように使用できますか –

関連する問題