java - 如何在 JavaFX 中使用按钮更新文本?
问题描述
最近一直在学习Java,现在遇到了JavaFX。我的问题是,如何Text
通过单击来更新/更改Button
?`
public class Main extends Application {
Scene start;
int counter = 0;
@Override
public void start(Stage primaryStage) throws Exception{
BorderPane startLayout = new BorderPane();
Button testButton = new Button("+1");
testButton.setOnAction(event -> {
counter++;
System.out.println("counter: " + counter);
});
Text test = new Text("Counter: " + counter);
test.setFont(Font.font("Consolas", 25));
test.setFill(Color.CORNFLOWERBLUE);
startLayout.setTop(test);
startLayout.setCenter(testButton);
start = new Scene(startLayout, 1280, 720);
primaryStage.setTitle("Test");
primaryStage.setScene(start);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
这里发生的是我Text
在左上角和Button
屏幕中间得到 。显示Text
“计数器:0”。当我按下时,Button
我希望文本显示“计数器:1”或“计数器:2”......取决于我按下的次数,Button
但是当我按下它时,没有任何反应,计数器在窗口中保持为 0。我究竟做错了什么?或者,还有其他方法吗?
解决方案
您是否尝试过使用test.setText("Counter" + counter);
按钮?
推荐阅读
- r - 根据模式匹配和两个附加条件合并两个数据帧
- node.js - 在 node.js 中搜索 JSON 数据
- php - AJAX - 如何更新购物车计数并每 5 分钟检查一次状态更改
- swift - 为什么我的 Realm 数据库中只有一个对象显示在我的 tableView 上?
- r - 使用 dplyr 的 mutate 和 case_when 来测试多列(日期间隔)
- postgresql - 从临时表更新每组选择“最后”行
- sql - 如何删除Oracle中的重复项?
- python - 可以同时写入文件并在不同的程序中读取它吗
- amazon-web-services - 使用 Cloudformation 将网页连接到 rds
- python - SQLAlchemy db.create_all() 错误,未创建数据库