From 62360c41a354c85b002ef7cd9caf583b7f2cc313 Mon Sep 17 00:00:00 2001 From: Elex Date: Sun, 15 Aug 2021 00:35:53 +0900 Subject: [PATCH] 2021-08-15 --- buildSrc/src/main/kotlin/elex-base.gradle.kts | 4 +- java-fx/build.gradle.kts | 25 +++++++++ java-fx/logback.xml | 20 +++++++ .../kr/pe/elex/examples/FxmlApplication.java | 33 ++++++++++++ java-fx/src/main/java/module-info.java | 6 +++ java-fx/src/main/resources/fxml/root.fxml | 41 ++++++++++++++ settings.gradle.kts | 3 +- swing/build.gradle.kts | 14 +++++ swing/logback.xml | 20 +++++++ .../main/java/kr/pe/elex/examples/HttpD.java | 53 +++++++++++++++++++ 10 files changed, 216 insertions(+), 3 deletions(-) create mode 100644 java-fx/build.gradle.kts create mode 100644 java-fx/logback.xml create mode 100644 java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java create mode 100644 java-fx/src/main/java/module-info.java create mode 100644 java-fx/src/main/resources/fxml/root.fxml create mode 100644 swing/build.gradle.kts create mode 100644 swing/logback.xml create mode 100644 swing/src/main/java/kr/pe/elex/examples/HttpD.java diff --git a/buildSrc/src/main/kotlin/elex-base.gradle.kts b/buildSrc/src/main/kotlin/elex-base.gradle.kts index c9fc6db..60f0401 100644 --- a/buildSrc/src/main/kotlin/elex-base.gradle.kts +++ b/buildSrc/src/main/kotlin/elex-base.gradle.kts @@ -22,8 +22,8 @@ repositories { java { withSourcesJar() withJavadocJar() - sourceCompatibility = org.gradle.api.JavaVersion.VERSION_1_8 - targetCompatibility = org.gradle.api.JavaVersion.VERSION_1_8 + sourceCompatibility = org.gradle.api.JavaVersion.VERSION_11 + targetCompatibility = org.gradle.api.JavaVersion.VERSION_11 } configurations { diff --git a/java-fx/build.gradle.kts b/java-fx/build.gradle.kts new file mode 100644 index 0000000..7dda4a1 --- /dev/null +++ b/java-fx/build.gradle.kts @@ -0,0 +1,25 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +plugins { + id("elex-java") + id("application") + id("org.openjfx.javafxplugin") version "0.0.10" + id("org.beryx.jlink") version "2.23.1" +} +application { + mainClass.set("kr.pe.elex.examples.FxmlApplication") + mainModule.set("kr.pe.elex.examples") +} +javafx { + version = "11.0.2" + modules = listOf("javafx.controls", "javafx.fxml") +} +dependencies { + //implementation("org.openjfx:javafx-controls:11.0.2") + //implementation("org.openjfx:javafx-fxml:11.0.2") +} diff --git a/java-fx/logback.xml b/java-fx/logback.xml new file mode 100644 index 0000000..74ff8a3 --- /dev/null +++ b/java-fx/logback.xml @@ -0,0 +1,20 @@ + + + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + diff --git a/java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java b/java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java new file mode 100644 index 0000000..d77e2ad --- /dev/null +++ b/java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java @@ -0,0 +1,33 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.layout.GridPane; +import javafx.stage.Stage; + +public class FxmlApplication extends Application { + public static void main(String... args) { + launch(args); + } + + @Override + public void start(Stage primaryStage) throws Exception { + primaryStage.setTitle("Hello!"); + primaryStage.setWidth(800); + primaryStage.setHeight(600); + //GridPane root = new GridPane(); + Parent root = FXMLLoader.load(getClass().getResource ("/fxml/root.fxml")); + Scene scene = new Scene(root); + primaryStage.setScene(scene); + primaryStage.show(); + } +} diff --git a/java-fx/src/main/java/module-info.java b/java-fx/src/main/java/module-info.java new file mode 100644 index 0000000..69ca3b8 --- /dev/null +++ b/java-fx/src/main/java/module-info.java @@ -0,0 +1,6 @@ +module kr.pe.elex.examples { + requires javafx.graphics; + requires javafx.fxml; + + exports kr.pe.elex.examples; +} diff --git a/java-fx/src/main/resources/fxml/root.fxml b/java-fx/src/main/resources/fxml/root.fxml new file mode 100644 index 0000000..e9f9789 --- /dev/null +++ b/java-fx/src/main/resources/fxml/root.fxml @@ -0,0 +1,41 @@ + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/settings.gradle.kts b/settings.gradle.kts index 2b95233..6673134 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -12,5 +12,6 @@ include( "ssh", "web-socket-servlet", "web-socket-client", "thread", "hibernate", "jdbc-sqlite", - "xml", "jackson", "jsoup", "markdown", "network", "httpd" + "xml", "jackson", "jsoup", "markdown", "network", "httpd", + "swing", "java-fx" ) diff --git a/swing/build.gradle.kts b/swing/build.gradle.kts new file mode 100644 index 0000000..d2aab59 --- /dev/null +++ b/swing/build.gradle.kts @@ -0,0 +1,14 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +plugins { + id("elex-java") +} + +dependencies { + +} diff --git a/swing/logback.xml b/swing/logback.xml new file mode 100644 index 0000000..74ff8a3 --- /dev/null +++ b/swing/logback.xml @@ -0,0 +1,20 @@ + + + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + diff --git a/swing/src/main/java/kr/pe/elex/examples/HttpD.java b/swing/src/main/java/kr/pe/elex/examples/HttpD.java new file mode 100644 index 0000000..4a5cb7a --- /dev/null +++ b/swing/src/main/java/kr/pe/elex/examples/HttpD.java @@ -0,0 +1,53 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; + +import com.sun.net.httpserver.HttpExchange; +import com.sun.net.httpserver.HttpHandler; +import com.sun.net.httpserver.HttpServer; +import lombok.extern.slf4j.Slf4j; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.time.LocalDateTime; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +@Slf4j +public class HttpD { + public static void main(String... args) throws IOException { + final ExecutorService threadPool = Executors.newCachedThreadPool(); + HttpServer httpServer = HttpServer.create(new InetSocketAddress(18080), 0); + httpServer.setExecutor(threadPool); + + httpServer.createContext("/", new HttpHandler() { + @Override + public void handle(final HttpExchange httpExchange) { + try { + httpExchange.getResponseHeaders().add("X-Datetime", LocalDateTime.now().toString()); + String message = "

Hello, world!

"; + //message += httpExchange.getRequestMethod(); + //BufferedReader reader = new BufferedReader(new InputStreamReader(httpExchange.getRequestBody())); + //message += reader.readLine(); + httpExchange.sendResponseHeaders(200, message.getBytes().length); + OutputStream os = httpExchange.getResponseBody(); + os.write(message.getBytes()); + os.flush(); + os.close(); + } catch (IOException e) { + } + + } + }); + httpServer.start(); + } + +}