GUI( JavaFX Scene Builder )/Lambda
Lambda_Event(1)
by pms93
2022. 8. 19.
package events;
import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class EventEx1 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Label label = new Label("클릭");
label.setFont(new Font(24));
label.setLayoutX(120);
label.setLayoutY(80);
// .setRotate()
// - 인자값만큼 컨트롤을 틀어준다.
label.setRotate(45);
// .setOnMouse?()
// - 마우스의 행동이 '?'와 일치할 때 동작할 코드 작성
// Entered - 마우스가 올라왔을 때, Exited - 올라온 마우스가 밖으로 나갔을 때, Clicked - 클릭됐을 때
label.setOnMouseEntered(new EventHandler<Event>() {
@Override
public void handle(Event event) {
// 라벨의 scale을 2배로 키워준다
label.setScaleX(2);
label.setScaleY(2);
}
});
label.setOnMouseExited(new EventHandler<Event>() {
@Override
public void handle(Event event) {
label.setScaleX(1);
label.setScaleY(1);
}
});
label.setOnMouseClicked(new EventHandler<Event>() {
@Override
public void handle(Event event) {
ImageView iv = new ImageView("/img/images.jpg");
AnchorPane ap2 = new AnchorPane();
ap2.getChildren().add(iv);
primaryStage.setScene(new Scene(ap2, 300, 200));
primaryStage.show();
}
});
AnchorPane ap = new AnchorPane();
ap.getChildren().add(label);
primaryStage.setScene(new Scene(ap, 300, 200));
primaryStage.show();
}
}