Java FX文本框不工作

Java FX文本框不工作,java,javafx,Java,Javafx,当按下write时,该程序将程序中的值存储到。然后,当按下read时,它将读取并显示值。结果应该显示在文本区域中。但是,当我运行程序时,按钮不会显示。当我运行它时,java开始在我的计算机上运行,但什么也没有出现 package program; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStrea

当按下write时,该程序将程序中的值存储到。然后,当按下read时,它将读取并显示值。结果应该显示在文本区域中。但是,当我运行程序时,按钮不会显示。当我运行它时,java开始在我的计算机上运行,但什么也没有出现

 package program;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Arrays;
import java.util.Date;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;


public class program extends Application {

     public static void main(String[] args) {
            launch(args);
        }

        @Override
        public void start(Stage primaryStage) throws ClassNotFoundException, IOException {

            // Text area
            TextArea textArea = new TextArea();
            textArea.setStyle("-fx-background-color: lightgrey; -fx-text-fill: blue; -fx-control-inner-background: grey");
            textArea.setPadding(new Insets(15, 15, 15, 15));


            Button write = new Button("Write");
            write.setOnAction(e -> {
                // Create an output stream for file
                try(ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("Exercise17_05.dat", true))) {
                    int[] numbers = {1, 2, 3, 4, 5};
                    // Write to file
                    // 1. Write double
                    output.writeDouble(5.5);
                    // 2. Write int array object
                    output.writeObject(numbers);
                    // 3. Write date object
                    output.writeObject(new java.util.Date());
                    // 4. Write utf string
                    output.writeUTF("Exercise17_05.dat");

                } catch(IOException exception) {
                    System.exit(0);
                }
            });



            Button read = new Button("Read");
            read.setOnAction(e -> {

                //Create an input stream for file
                try(ObjectInputStream input = new ObjectInputStream(new FileInputStream("Exercise17_05.dat"));){
                // Read from file
                   // 1. Read double
                 double doubleValue = input.readDouble();
                 textArea.appendText("Double value: " + doubleValue);
                 // 2. Read int array object
                 int[] newNumbers = (int[]) (input.readObject());
                 textArea.appendText("Integers: " + Arrays.toString(newNumbers));
                 // 3. Read date object
                 Date date = (java.util.Date) (input.readObject());
                 textArea.appendText("DateTime: " + date);
                 // 4. Read utf string
                 String fileName = input.readUTF();      
                textArea.appendText("File name: " + fileName);

                  } catch(IOException | ClassNotFoundException exception) {
                        System.exit(0);
                    }});


            HBox hButtons = new HBox(read, write);
            VBox vProgram = new VBox(8);
            vProgram.getChildren().addAll(hButtons, textArea);

            primaryStage.setScene(new Scene(vProgram));
            primaryStage.setTitle("Write and Read");
            primaryStage.show();


        }   
}

在代码末尾添加这两行代码,以使gui可见

        primaryStage.setScene(new Scene(vProgram, 300, 250));
        primaryStage.show();

@goblin您创建了一个
文本字段
和两个
按钮
,但您只是没有将它们放置在任何位置。@Denis Kokorin自JavaFX 8以来,可以将节点作为构造函数参数传递给HBox和VBox。这就是地精在这里做的事。因此,guleryuz的答案已经完成。这些按钮似乎没有显示在vProgram框中。我添加了新代码,这对我来说很好。我复制并粘贴了代码并运行了它,按钮和文本显示并按预期工作。按钮没有为我显示。只显示标题的灰色框。可能您没有保存或重新编译最新版本:代码中没有任何错误。清理并重新构建项目(或者IDE中的任何等价物)。我已经更新了eclipse,并且刚刚下载了netbeans,但它在这方面也不能正常工作。你能发布运行它时得到的屏幕截图吗?正如我所说的,我只是将您的代码复制并粘贴到Eclipse中,当我运行它时,我得到的正是我所期望的。