From c1083a6884d4b181c48c40c070a0efd5c8b597d9 Mon Sep 17 00:00:00 2001 From: Elex Date: Thu, 5 Aug 2021 18:55:32 +0900 Subject: [PATCH] 2021-08-05 --- ...pplication.properties => application.yaml} | 0 settings.gradle.kts | 2 +- swing/README.md | 1 + swing/build.gradle.kts | 26 ++++++++++++++ .../java/kr/pe/elex/examples/Application.java | 34 +++++++++++++++++++ .../main/java/kr/pe/elex/examples/Config.java | 23 +++++++++++++ .../java/kr/pe/elex/examples/MyPanel.java | 31 +++++++++++++++++ .../java/kr/pe/elex/examples/MyService.java | 11 ++++++ swing/src/main/resources/application.yaml | 3 ++ 9 files changed, 130 insertions(+), 1 deletion(-) rename restful/src/main/resources/{application.properties => application.yaml} (100%) create mode 100644 swing/README.md create mode 100644 swing/build.gradle.kts create mode 100644 swing/src/main/java/kr/pe/elex/examples/Application.java create mode 100644 swing/src/main/java/kr/pe/elex/examples/Config.java create mode 100644 swing/src/main/java/kr/pe/elex/examples/MyPanel.java create mode 100644 swing/src/main/java/kr/pe/elex/examples/MyService.java create mode 100644 swing/src/main/resources/application.yaml diff --git a/restful/src/main/resources/application.properties b/restful/src/main/resources/application.yaml similarity index 100% rename from restful/src/main/resources/application.properties rename to restful/src/main/resources/application.yaml diff --git a/settings.gradle.kts b/settings.gradle.kts index 1668e3c..6f52b53 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -7,4 +7,4 @@ rootProject.name = "spring-boot-examples" include("file-upload", "security", "security-with-jpa", "validation", "testing", - "mqtt", "websocket", "restful") + "mqtt", "websocket", "restful", "swing") diff --git a/swing/README.md b/swing/README.md new file mode 100644 index 0000000..50a1e70 --- /dev/null +++ b/swing/README.md @@ -0,0 +1 @@ +# Spring-boot for Swing diff --git a/swing/build.gradle.kts b/swing/build.gradle.kts new file mode 100644 index 0000000..e63ccb4 --- /dev/null +++ b/swing/build.gradle.kts @@ -0,0 +1,26 @@ +/* + * Spring-boot Examples + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +plugins { + id("elex-spring-boot") + + id("org.springframework.boot") version "2.5.3" + id("io.spring.dependency-management") version "1.0.11.RELEASE" +} + +dependencies { + //implementation("org.springframework.boot:spring-boot-starter-mustache") + implementation("org.springframework.boot:spring-boot-starter-web") + + compileOnly("org.projectlombok:lombok") + developmentOnly("org.springframework.boot:spring-boot-devtools") + + annotationProcessor("org.springframework.boot:spring-boot-configuration-processor") + annotationProcessor("org.projectlombok:lombok") + + testImplementation("org.springframework.boot:spring-boot-starter-test") +} diff --git a/swing/src/main/java/kr/pe/elex/examples/Application.java b/swing/src/main/java/kr/pe/elex/examples/Application.java new file mode 100644 index 0000000..943de44 --- /dev/null +++ b/swing/src/main/java/kr/pe/elex/examples/Application.java @@ -0,0 +1,34 @@ +package kr.pe.elex.examples; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.context.ConfigurableApplicationContext; + +import javax.swing.*; + +@SpringBootApplication +public class Application implements CommandLineRunner { + + @Autowired + private JFrame window; + //@Autowired + //private MyPanel contentPane; + + public static void main(String[] args) { + ConfigurableApplicationContext context + = new SpringApplicationBuilder(Application.class) + .headless(false) + .run(args); + //SpringApplication.run(Application.class, args); + } + + @Override + public void run(String... arg0) throws Exception { + SwingUtilities.invokeLater(() -> { + window.setVisible(true); + }); + } + +} diff --git a/swing/src/main/java/kr/pe/elex/examples/Config.java b/swing/src/main/java/kr/pe/elex/examples/Config.java new file mode 100644 index 0000000..774bcff --- /dev/null +++ b/swing/src/main/java/kr/pe/elex/examples/Config.java @@ -0,0 +1,23 @@ +package kr.pe.elex.examples; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.swing.*; + +@Configuration +public class Config { + @Autowired + private MyPanel contentPane; + + @Bean + public JFrame window(){ + final JFrame jFrame = new JFrame(); + jFrame.setTitle("Test"); + jFrame.setSize(800, 600); + jFrame.setContentPane(contentPane); + jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + return jFrame; + } +} diff --git a/swing/src/main/java/kr/pe/elex/examples/MyPanel.java b/swing/src/main/java/kr/pe/elex/examples/MyPanel.java new file mode 100644 index 0000000..72be261 --- /dev/null +++ b/swing/src/main/java/kr/pe/elex/examples/MyPanel.java @@ -0,0 +1,31 @@ +package kr.pe.elex.examples; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.swing.*; +import java.awt.*; + +@Slf4j +@Component +public class MyPanel extends JPanel { + //@Autowired + //private JFrame window; + @Autowired + private MyService service; + + public MyPanel() { + super(); + + this.setLayout(new BorderLayout()); + JButton btn = new JButton("Button"); + this.add(new JLabel("Hello"), BorderLayout.CENTER); + this.add(btn, BorderLayout.SOUTH); + + btn.addActionListener(e -> { + //System.out.println(window.getTitle()); + System.out.println(service.getText()); + }); + } +} diff --git a/swing/src/main/java/kr/pe/elex/examples/MyService.java b/swing/src/main/java/kr/pe/elex/examples/MyService.java new file mode 100644 index 0000000..ef0c4e8 --- /dev/null +++ b/swing/src/main/java/kr/pe/elex/examples/MyService.java @@ -0,0 +1,11 @@ +package kr.pe.elex.examples; + +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +@Service +public class MyService { + public String getText(){ + return "Hello~"; + } +} diff --git a/swing/src/main/resources/application.yaml b/swing/src/main/resources/application.yaml new file mode 100644 index 0000000..401ef43 --- /dev/null +++ b/swing/src/main/resources/application.yaml @@ -0,0 +1,3 @@ +spring: + main: + web-application-type: none