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