ITI0011RUS:javafx ex
Вернуться на страницу предмета
JavaFXIntro.java: <source lang="java"> import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.StackPane; import javafx.stage.Stage;
/**
* @author aleksandr.lenin * */
public class JavaFXIntro extends Application {
/** * @param args */ public static void main(String[] args) { launch(args); }
@Override public void start(Stage primaryStage) throws Exception { Scene sc = new Scene(new StackPane(),800,600); primaryStage.setScene(sc); primaryStage.show(); }
} </source>
HelloWorld.java:
<source lang="java">
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
TextField text = new TextField();
text.setText("My awesome contribution =)");
Label label = new Label();
label.setText("Foo");
Button btn = new Button();
btn.setText("Say 'Hello World'");
/*
btn.setOnAction(
new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent event) { System.out.println("Hello World!"); }
}
);
*/
btn.setOnAction(new MyAwesomeEventHandler(scene));
StackPane.setAlignment(text, Pos.TOP_CENTER);
StackPane.setAlignment(label, Pos.BOTTOM_CENTER);
root.getChildren().add(btn);
root.getChildren().add(text);
root.getChildren().add(label);
primaryStage.setScene(scene);
primaryStage.show();
}
} </source>
MyAwesomeEventHandler.java: <source lang="java">
import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.Event; import javafx.event.EventHandler; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.StackPane;
/**
* @author aleksandr.lenin * */
public class MyAwesomeEventHandler implements EventHandler<ActionEvent> {
private Scene scene = null;
public MyAwesomeEventHandler(Scene scene) { this.scene = scene; }
@Override public void handle(ActionEvent event) { StackPane root = (StackPane) this.scene.getRoot(); ObservableList<Node> children = root.getChildren();
Label label = null; TextField text = null; for(Node n : children) { if(n instanceof Label) { label = (Label) n; } else if(n instanceof TextField) { text = (TextField) n; } }
label.setText(text.getText()); }
} </source>