FluX FluX - 3 years ago 111
Java Question

How to prevent the entry of a negative number or a number with more than 4 digits

I just want to find out if there is any way to block a user from entering either a negative number or a number with more than 4 digits. Also is there anyway to put this logic into a GUI? Here is my code:

import java.util.Scanner;
public class EasterSunday
{
public static void main(String[] args)
{
int year; // declarations
Scanner input = new Scanner(System.in); //start Scanner
System.out.println("Enter in a year to find out the day and month of that Easter Sunday.");
year = input.nextInt();
int a = year%19;
int b = year%4;
int c = year%7;
int d = (19 * a + 24) %30;
int e = (2 * b + 4 * c + 6 * d + 5) %7;
int eSunday = (22 + d + e);
if ((year >= 1900) && (year <= 2099) && (year != 1954) && (year != 1981) && (year != 2049) && (year != 2076))
{
if (eSunday <= 30)
System.out.println("Easter Sunday in " + year + " is March, " + eSunday);
else
System.out.println("Easter Sunday in " + year + " is April, " + (eSunday - 30));
}
else
{
if (eSunday <= 30)
System.out.println("Easter Sunday in " + year + " is March, " + (eSunday - 7));
else
System.out.println("Easter Sunday in " + year + " is April, " + (eSunday - 37));
}
}
}

Answer Source

You can add a JFormattedTextField and restrict the characters to numbers with max length of 4. This covers negative numbers since the user can't enter the minus character.

Another solution is to use an InputVerifier on a simple JTextField.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download