java - 如何在 JavaFx 中单击按钮时更改变量

标签 java javafx

我想在单击 JavaFX 中的按钮时更改变量。但是当我尝试使用程序中的变量时,它会显示

local variables referenced from inside a lambda must be final or effectively final.

无法将其最终确定,因为我需要更改它以便我可以使用它。我的代码如下所示

Button next = new Button();
    next.setText("next");
    next.setOnAction((ActionEvent event) -> {
        currentLine++;
});

我能做些什么来解决这个问题?

最佳答案

您的问题有多种解决方案。除了 ItachiUchiha 的帖子之外,只需将变量声明为类成员,如下所示:

public class Main extends Application {

    int counter = 0;

    @Override
    public void start(Stage primaryStage) {
        try {
            HBox root = new HBox();
            Button button = new Button ("Increase");
            button.setOnAction(e -> {
                counter++;
                System.out.println("counter: " + counter);
            });

            root.getChildren().add( button);
            Scene scene = new Scene(root,400,400);

            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

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

关于java - 如何在 JavaFx 中单击按钮时更改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29691201/

相关文章:

java - Android Camera Preview - 只取一部分屏幕数据

Java Base64 Sun 到 JDK8

javascript - 无法让 javafx 和 webview 处理 google javascript

java - 提高 JavaFX WebGL 性能

JavaFX JFXDatePicker 为特定日期设置颜色

java - 使用 Jena 的 SPARQL 查询没有产生任何结果——但在线工作

java - 无法从 Java Servlet 获取变量

java - 图像与 Java 树节点对象的关联

ScrollPane 中的 JavaFX GridPane 比预期大

JavaFX 剪贴板使图像变形。 DPI 难辞其咎?