未考虑非法输入时:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.HBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Test extends Application{
	public static void main(String[] args) {
		Test.launch(args);
    } 
      
    public void start(Stage stage ){
    	stage.setTitle("Year Testing");          
        AnchorPane root = new AnchorPane();

        HBox hbox1 = new HBox(8);
        Text text = new Text("The Number of Year: ");
        final Text result = new Text();
        final TextField tf = new TextField();
        Button btn = new Button("Enter");
        hbox1.getChildren().addAll(text, tf, btn);
         
        btn.setOnAction(new EventHandler<ActionEvent>(){
        	@Override
            public void handle(ActionEvent actEvt) {
        		if(check(Integer.parseInt(tf.getText())))
        			result.setText(Integer.parseInt(tf.getText())+" Good");
        		else
        			result.setText(Integer.parseInt(tf.getText())+" Bad");
                }
        });
        
        AnchorPane.setTopAnchor(hbox1, 60.0);
        AnchorPane.setLeftAnchor(hbox1, 30.0);
        root.getChildren().add(hbox1);
        
        AnchorPane.setTopAnchor(result, 90.0);
        AnchorPane.setLeftAnchor(result, 30.0);
        root.getChildren().
add(result);
        
        stage.setScene(new Scene(root, 400, 200));
        stage.show(); 
    }
     
    public boolean check(int num){
    	boolean re = false;
    	if((num % 4) == 0)
    		re = true;
    	if((num % 100) == 0)
    		re = false;
    	if((num % 400) == 0)
    		re = true;
    		
    	return re;
    }
}

 

正常输入:

非法输入:

原因分析:

在使用Integer.parseInt(tf.getText())函数时没有考虑到非法输入的情况。

改进:

btn.setOnAction(new EventHandler<ActionEvent>(){
        	@Override
            public void handle(ActionEvent actEvt) {
        		try{
        			if(check(Integer.parseInt(tf.getText())))
            			result.setText(Integer.parseInt(tf.getText())+" Good");
            		else
            			result.setText(Integer.parseInt(tf.getText())+" Bad");
                    }
        		catch(Exception e){
        			result.setText("Illegal Input!");
        		}
        	}
        });

效果: