JavaFX文本字段到文件
亲爱的Java爱好者 我尝试用JavaFX制作一个小应用程序,它在文本字段中接受用户输入,单击按钮并将其写入.txt文件 这里的问题是:该程序实际上运行良好,并将用户输入打印到.txt文件中,但它只有在我关闭该程序后才会出现 我可能认为按钮事件处理程序有问题 希望你们中的一些人能找到一个简单的解决办法JavaFX文本字段到文件,java,file,javafx,javafx-2,Java,File,Javafx,Javafx 2,亲爱的Java爱好者 我尝试用JavaFX制作一个小应用程序,它在文本字段中接受用户输入,单击按钮并将其写入.txt文件 这里的问题是:该程序实际上运行良好,并将用户输入打印到.txt文件中,但它只有在我关闭该程序后才会出现 我可能认为按钮事件处理程序有问题 希望你们中的一些人能找到一个简单的解决办法 public class TextFileOPG extends Application { private Stage switchStage; private static TextFiel
public class TextFileOPG extends Application {
private Stage switchStage;
private static TextField text1 = new TextField();
private TextField text2 = new TextField();
private Button implFileBtn = new Button("CATCH ME FILE!");
@Override
public void start(Stage primaryStage) {
try {
switchStage = primaryStage;
GridPane root = new GridPane();
root.setAlignment(Pos.CENTER);
Text scenetitle = new Text("Welcome");
scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 40));
root.add(scenetitle, 3, 2);
primaryStage.setTitle("Welcome");
Scene scene = new Scene(root,350,400);
primaryStage.setScene(scene);
primaryStage.show();
Timeline tick0 = new Timeline();
tick0.setCycleCount(Timeline.INDEFINITE);
tick0.getKeyFrames().add(
new KeyFrame(new Duration(30), new EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
root.setOpacity(root.getOpacity()-0.01);
if(root.getOpacity()<0.01){//30divided by 0.01 equals 3000 so you take the duration and divide it be the opacity to get your stansition.
loggedIn();
tick0.stop();
}
}}));
tick0.play();
} catch(Exception e) {
e.printStackTrace();
}
}
public void loggedIn()
{
switchStage.setTitle("Try");
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
text1.setText("");
text1.setAlignment(Pos.CENTER);
Text thisIsSoCoolText = new Text("Enter a text to the file");
thisIsSoCoolText.setFont(Font.font("Tahoma", FontWeight.NORMAL, 28));
grid.add(thisIsSoCoolText, 0, 0);
grid.add(text1, 0, 1);
HBox hbox = new HBox();
hbox.getChildren().add(implFileBtn);
hbox.setAlignment(Pos.CENTER);
grid.add(hbox, 0, 2);
implFileBtn.setOnAction(e -> text1.setText(text1.getText()));
Scene scene = new Scene(grid, 350, 400);
switchStage.setScene(scene);
switchStage.show();
}
public static void main(String[] args) {
launch(args);
try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("myfile.txt", true))))
{
out.println(text1.getText());
}
catch (IOException e)
{
//TO-DO
}
}
}
问候
Alex只有在主UI线程完成后才能写入文件。在按钮的EventHandler中移动功能
嘿,伙计!很好的解决方案。它起作用了,有点。问题仍然是,;当我单击我的奇妙按钮时,它不会直接将文本字段写入文件。当我关闭程序时,所有文本突然出现?你有什么解决办法吗?谢谢,这听起来像是前一个版本的行为。试着清理和重建你的项目…我想出来了。这是因为Eclipse没有自动刷新。当我尝试它时,它工作得很好。
implFileBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
try (PrintWriter out = new PrintWriter(new BufferedWriter(
new FileWriter("myfile.txt", true)))) {
out.println(text1.getText());
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
});