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();
}
}