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.