1. Lambda
package lambdas;
interface ILambdaEx01 {
void lambda();
}
// 구현체 따로 만들어서 구현하기
class LambdaImplEx01 implements ILambdaEx01 {
@Override
public void lambda() {
System.out.println("메서드 호출");
}
}
public class LambdaEx01 {
public static void main(String[] args) {
LambdaImplEx01 ex01 = new LambdaImplEx01();
ex01.lambda();
}
}
package lambdas;
interface ILambdaEx02 {
void lambda();
}
public class LambdaEx02 {
public static void main(String[] args) {
ILambdaEx02 ex02 = new ILambdaEx02() {
// 오버라이드해서 구현하기
@Override
public void lambda() {
System.out.println("메서드 호출");
}
};
ex02.lambda();
}
}
package lambdas;
interface ILambdaEx03{
void lambda();
}
// 람다식으로 구현하기
public class LambdaEx03 {
public static void main(String[] args) {
ILambdaEx03 ex03 = () -> {
System.out.println("메서드 호출");
};
ex03.lambda();
}
}
2. event
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.layout.AnchorPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class EventsEx01 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);
// 오버라이드로 표현
// EventHandler eh = new EventHandler() {
//
// @Override
// public void handle(Event event) {
// System.out.println("레이블 위에 마우스 포인터가 있다.");
// }
//
// };
// 람다식으로 표현
EventHandler<Event> eh = (e) -> {
System.out.println("레이블 위에 마우스 포인터가 있다.");
};
label.setOnMouseClicked(eh); // 클릭
// label.setOnMouseEntered(eh); // 올리기
AnchorPane anchor = new AnchorPane();
anchor.getChildren().add(label);
primaryStage.setTitle("EventEx1");
primaryStage.setScene(new Scene(anchor, 300, 200));
primaryStage.show();
}
}
3. Scene Builder
https://gluonhq.com/products/scene-builder/
Scene Builder - Gluon
Drag & Drop,Rapid Application Development. Download Now Integrated Scene Builder works with the JavaFX ecosystem – official controls, community projects, and Gluon offerings including Gluon Mobile, Gluon Desktop, and Gluon CloudLink. Simple Drag
gluonhq.com
더보기








(현재 설치한 이클립스 버전에서 지원 안함)
Scene Builder로 화면 구성하기
Ex1.class
package ex1;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Ex1 extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
System.out.println("현재 클래스: " + getClass());
System.out.println("어떤 대상의 위치: " + getClass().getResource("ex1.fxml"));
FXMLLoader loader = new FXMLLoader(getClass().getResource("ex1.fxml"));
Parent form = loader.load();
primaryStage.setScene(new Scene(form));
primaryStage.setTitle("ex1");
primaryStage.show();
}
}
ex1.fxml
- Scene Builder로 구성한 화면이 xml 코드로 만들어짐
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<HBox alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="122.0" prefWidth="381.0" spacing="10.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
<children>
<VBox alignment="CENTER_LEFT" prefHeight="102.0" prefWidth="173.0" spacing="10.0">
<children>
<TextField prefHeight="35.0" prefWidth="120.0" />
<PasswordField maxWidth="190.0" prefHeight="35.0" prefWidth="120.0" />
</children>
</VBox>
<VBox alignment="CENTER_LEFT" prefHeight="91.0" prefWidth="160.0">
<children>
<Button mnemonicParsing="false" prefHeight="82.0" prefWidth="97.0" style="-fx-background-color: #58ACFA;" text="로그인" textAlignment="CENTER" textFill="WHITE">
<font>
<Font name="Dotum" size="12.0" />
</font>
</Button>
</children>
</VBox>
</children>
</HBox>
'오늘의 공부 & 기록' 카테고리의 다른 글
3월 24일 javaFx (0) | 2023.03.24 |
---|---|
3월 23일 Scene Builder (0) | 2023.03.23 |
3월 21일 javafx (0) | 2023.03.21 |
3월 20일 javajx (0) | 2023.03.20 |
3월 17일 javaFX (0) | 2023.03.17 |