본문 바로가기
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();
	}
}

'GUI( JavaFX Scene Builder ) > Lambda' 카테고리의 다른 글

Lambda_Event 예제  (0) 2022.08.19
Lambda_Event(3)  (0) 2022.08.19
Lambda_Event(2)  (0) 2022.08.19
Lambda  (0) 2022.08.19