Javafx Events: Fariz Darari
Javafx Events: Fariz Darari
Fariz Darari
Button Event Handler
2
Button Event Handler #1: Standard
Class
// ...
@Override
public void start(Stage mainStage) throws Exception {
Button but = new Button("Click me");
MyHandler handler = new MyHandler();
but.setOnAction(handler);
Scene sc = new Scene(but, 200, 100);
mainStage.setScene(sc);
mainStage.show();
}
// ...
3
Button Event Handler #1: Standard
Class
// ...
@Override
public void handle(ActionEvent e) {
System.out.println("Clicked");
}
4
Button Event Handler #2:
Anonymous Class
// ...
@Override
public void start(Stage mainStage) throws Exception {
Button but = new Button("Click me");
but.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
System.out.println("Clicked");
}
});
Scene sc = new Scene(but, 200, 100);
mainStage.setScene(sc);
mainStage.show();
}
// ...
5
Button Event Handler #3: Lambda
Expression
// ...
@Override
public void start(Stage mainStage) throws Exception {
Button but = new Button("Click me");
but.setOnAction((e) -> {
System.out.println("Clicked");
});
Scene sc = new Scene(but, 200, 100);
mainStage.setScene(sc);
mainStage.show();
}
// ...
6
Quiztime: Create two buttons, and
bind different event handlers
7
Quiztime: Create two buttons, and bind different event
handlers
public void start(Stage mainStage) throws Exception {
VBox vb = new VBox();
vb.setAlignment(Pos.CENTER);
vb.setSpacing(20);
vb.getChildren().add(clickBut);
vb.getChildren().add(noClickBut);
9
Square Size Control
public class GUI018 extends Application {
int l = 50;
@Override
public void start(Stage mainStage) throws Exception {
BorderPane bp = new BorderPane();
10
// ...
Button clickBut = new Button("Bigger");
clickBut.setOnAction((e) -> {
l += 5;
r.setWidth(l);
r.setHeight(l);
});
hb.getChildren().add(clickBut);
bp.setBottom(hb);
BOTTOM
12
Quiztime: Circle Size Control
13
Quiztime: Circle Size Control
Solution:
http://ocw.ui.ac.id/mod/resource/view.php?id=1122
14
ChoiceBox with Event Handler
15
public class GUI019 extends Application {
@Override
public void start(Stage stg1) throws Exception {
VBox pn = new VBox();
pn.setAlignment(Pos.CENTER);
pn.setSpacing(20);
pn.getChildren().add(new Label("Pick your fav K-pop star!"));
ChoiceBox cb = new ChoiceBox(FXCollections.observableArrayList("Joo Ko-Wee", "Park
Bo-Wow"));
cb.setOnAction(e -> {
t.setText(" 사랑해 , " + ((ChoiceBox) e.getSource()).getValue() + " Oppa!");
});
pn.getChildren().add(cb);
pn.getChildren().add(t);
Scene scn = new Scene(pn, 180, 150);
stg1.setScene(scn); stg1.setResizable(false); stg1.show();
}
// ... usual
16
Wedding Guest Book
17
Wedding Guest Book
Solution:
http://ocw.ui.ac.id/mod/resource/view.php?id=1119
18
WebView
19
public void start(Stage stg) throws Exception {
20
MediaPlayer
21
public void start(Stage stg) throws Exception {
22
Inspired by:
Liang, Introduction to Java, 10th edition, Pearson.
Javadoc.