在Javafx程序中读写文件

时间:2018-11-12 19:02:14

标签: javafx

我正在写一个程序来读写文件。它有50个数字,如果用户输入的数字大于50,则应要求用户再次输入。我的问题是错误,它应该显示消息框,但再次返回到文本字段进行输入。还有一个问题,例如,用户1输入1,用户2输入1,它应该告诉用户2“请输入另一个已经输入的数字”。如何编写和读取文件。 这是我的代码:

public class JavaFXApplication24 extends Application {
    private int seatInput;
    @Override
    public void start(Stage primaryStage) {
         StackPane pane = new StackPane();

         HBox hbox = new HBox();
         Label num = new Label("Please enter the  number from 1 to 50: ");

        TextField numInput = new TextField();

        File file = new File("NumberBook.txt");
        Button ok = new Button("ok");
         ok.setOnAction((new EventHandler<ActionEvent>(){
        public void handle(final ActionEvent event ){

            try{
             if ((numInput.getText().equals(1)&& numInput.getText().equals(50))){


             }else{
                 String input = JOptionPane.showInputDialog("Please enter again");
             }
        }
            catch (HeadlessException | NumberFormatException e) {

        }
        try {
            PrintWriter output = new PrintWriter(file);

        } catch (IOException ex) {
            System.out.printf("error", ex);
        }
         try {
            Scanner input1 = new Scanner(file);

            System.out.printf("Entered: %s", seatInput);

        } catch (FileNotFoundException ex) {
            System.out.printf("error", ex);
        }

        }

        }));
        hbox.getChildren().addAll(num,numInput,ok);



        pane.getChildren().addAll(hbox);

        Scene secondScene = new Scene(pane, 600, 400);

        // New window (Stage)
        Stage newWindow = new Stage();
        newWindow.setTitle("Booking and Timing");
        newWindow.setScene(secondScene);
        newWindow.show();

    }

}

1 个答案:

答案 0 :(得分:0)

快速浏览一下,您的代码存在一些问题:

1)if ((numInput.getText().equals(1)&& numInput.getText().equals(50)))。这里有两个问题。首先,正如fabian指出的那样,此语句将始终为false。其次,从您的问题来看,我认为您希望用户输入一个1到50之间的数字,但是在这里您要检查他们是否输入1 50(这也意味着它始终是错误的)。

2)JOptionPane.showInputDialog("Please enter again")因为您的应用程序是JavaFX,所以应该使用内置的Dialog

现在要回答您的问题,可以在显示错误消息后立即在文本字段上调用requestFocus。第二个问题似乎是您想要应用程序中的某些联网功能,这给它增加了很多复杂性。您可能需要对如何使用Java进行研究。