如何使用JOptionpane阻止用户输入字符,字符串和空白区域

时间:2017-01-20 19:13:41

标签: java string char int joptionpane

如何阻止用户使用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);

2 个答案:

答案 0 :(得分:1)

内容如下:

int[] occurrencesA = new int[10], occurrencesB = new int[10];
for(; m != 0; m /= 10)
    occurrencesA[m % 10]++;
for(; n != 0; n /= 10)
    occurrencesB[n % 10]++;
for(int i = 0; i < 10; i++)
    if(occurrencesA[i] != occurrencesB[i]) return false;
return true;

试试这个:

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

答案 1 :(得分: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());
}