본문 바로가기
GUI( JavaFX Scene Builder )/Lambda

Lambda_Event 예제

by pms93 2022. 8. 19.
package events;

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.ImageView;
import javafx.scene.layout.FlowPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class Quiz1 extends Application {

	public static void main(String[] args) {
		launch(args);
	}

	@Override
	public void start(Stage primaryStage) throws Exception {
		ImageView iv = new ImageView("/img/search.png"), angry = new ImageView("/img/images.jpg");
		Label a = new Label("Search", iv), b = new Label("Values"), c = new Label("A label that needs to be wrapped"), d = new Label("누르지 마라");
		a.setFont(new Font(20));
		b.setFont(new Font(40));
		c.setFont(new Font(10));
		d.setFont(new Font(15));
		b.setRotate(-90);

		// .setWrapText()
		// - 기본값 false
		// - 매개변수에 true를 넘겨 라벨의 내용이 공간을 넘어설 경우 자동 개행이 이뤄지게 할 수 있다.
		c.setWrapText(true);

		// a라벨 이벤트
		a.setOnMouseEntered(e -> {
			a.setScaleX(2);
			a.setScaleY(2);
		});
		a.setOnMouseExited(e -> {
			a.setScaleX(1);
			a.setScaleY(1);
		});

		
		// b라벨 이벤트
		b.setOnMouseEntered(e -> {
			b.setScaleX(2);
			b.setScaleY(2);
		});

		b.setOnMouseExited(e -> {
			b.setScaleX(1);
			b.setScaleY(1);
		});

		
		// c라벨 이벤트
		c.setOnMouseEntered(e -> {
			c.setScaleX(2);
			c.setScaleY(2);
		});
		c.setOnMouseExited(e -> {
			c.setScaleX(1);
			c.setScaleY(1);
		});


		
		// d라벨 이벤트
		d.setOnMouseClicked(e -> {
			FlowPane fp2 = new FlowPane();
			fp2.getChildren().add(angry);
			fp2.setAlignment(Pos.CENTER);

			primaryStage.setScene(new Scene(fp2, 800, 400));
			primaryStage.show();

			fp2.setOnMouseClicked(e2 -> {
				FlowPane fp3 = new FlowPane();
				fp3.getChildren().addAll(a, b, c, d);
				fp3.setAlignment(Pos.CENTER);
				fp3.setHgap(70);
				primaryStage.setScene(new Scene(fp3, 800, 400));
				primaryStage.show();
			});

		});

		FlowPane fp = new FlowPane();
		fp.getChildren().addAll(a, b, c, d);
		fp.setAlignment(Pos.CENTER);
		fp.setHgap(70);

		primaryStage.setScene(new Scene(fp, 800, 400));
		primaryStage.show();
	}

}

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

Lambda_Event(3)  (0) 2022.08.19
Lambda_Event(2)  (0) 2022.08.19
Lambda_Event(1)  (0) 2022.08.19
Lambda  (0) 2022.08.19