简体   繁体   中英

Access property outside class

please see this code

    import javafx.application.Application;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.ButtonBuilder;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;

    public class Test extends Application {

        private String pageTitle;

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

        @Override
        public void start(Stage stage) throws Exception {
            this.setPageTitle("Hello World");

            Button btn = ButtonBuilder.create()
                    .text("Test Button")
                    .onAction(new EventHandler<ActionEvent>() {
                        @Override
                        public void handle(ActionEvent actionEvent) {
                            // this handle should change the property if Test.pageTitle property
                            //this.setPageTitle("Change button");
                            System.out.println("Testing button action");
                        }
                    })
                    .build();

            StackPane root = new StackPane();
            root.getChildren().add(btn);

            stage.setTitle(getPageTitle());
            stage.setScene(new Scene(root, 400, 400));
            stage.show();
        }

        public String getPageTitle() {
            return pageTitle;
        }

        public void setPageTitle(String pageTitle) {
            this.pageTitle = pageTitle;
        }
    }

I want every time is the button clicked, it will change the title of application. How to make the event handler can access the property of Text class?

您应该参考Test类的当前实例

Test.this.setPageTitle("Change button");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM