Backend/JAVA

[JAVA] 생활코딩 JAVA1 - Chapter 4. 자바 기술의 응용

JOKUN 2022. 4. 14. 22:26

Chapter 4. 자바 기술의 응용 : Hello Java World

#중간 OT

chapter4에서 나오는 내용은 자바를 통해 할 수 있는 일들은 무엇이 있을지와

자바를 통하여 이러한 가능성들이 있다는걸 소개하는 수업이기때문에 관전한다는 마음으로 수업듣기!

 

 

https://youtu.be/AuiMh9bGTKI

 

 


 

Chapter 4. 자바 기술의 응용 : 데스크톱 애플리케이션 만들기

#Hello World!! 창 띄우기 실행

기본으로 제공 되는 코드안에서 창 사이즈, 글자 위치,문구 등이 들어가있는 곳 유추해서 변경하여 실행해보기


import javax.swing.*;   
import java.awt.Dimension;
import java.awt.Toolkit;
public class HelloWorldGUIApp{
    public static void main(String[] args){
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame frame = new JFrame("HelloWorld GUI");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setPreferredSize(new Dimension(800, 300));
                JLabel label = new JLabel("Hello World!!", SwingConstants.RIGHT);
                frame.getContentPane().add(label);
                Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
                frame.setLocation(dim.width/2-400/2, dim.height/2-300/2);

                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}

소스 코드 : https://github.com/egoing/java1/blob/master/HelloWorldGUI/HelloWorldGUIApp.java

 

GitHub - egoing/java1

Contribute to egoing/java1 development by creating an account on GitHub.

github.com

 

 

https://youtu.be/bZuoyW26zW4

 

 

 


Chapter 4. 자바 기술의 응용 : 사물을 자바로 제어하기

#사물 인터넷 : IOT(Internet Of Things)

컴퓨터는 거듭되어 더 작고, 더 저렴하고, 더 빨라지도록 발전되어 왔다.

이로인해 사물에 컴퓨터를 내장하여 프로그래밍하여 제어할 수 있도록 만드는 것이 가능해졌다.

예) 그냥 전구 →스마트 전구

 

#라즈베리 파이 : 교육용으로 제작된 사물 인터넷 컴퓨터

GPIO라는 핀이 있고 JAVA를 이용하여 라즈베리 파이에게 명령할 수 있다.

라즈베리 파이라는 컴퓨터 안에 자바로 파일 하나를 만들고

불을 켰다 껐다 반복되게하여 모스부호 형태로 신호를 주어 LED로 글자를 표현 할 수 있게 한다.

 


eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=9
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=9
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=9

import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;

public class HelloWorldRaspberryPi {

	public static void main(String[] args) throws InterruptedException {

		final GpioController gpio = GpioFactory.getInstance();
		final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01, "PinLED", PinState.LOW);
		final int SHORT_INTERVAL = 200; //0.2초만큼 불이 켜진 상태가 유지 됨
		final int LONG_INTERVAL = SHORT_INTERVAL * 3;
		final int LETTER_INTERVAL = SHORT_INTERVAL * 7;

		while (true) {
			// H
			pin.high(); // GPIO라는 핀에 전기가 흐르면서 LED가 켜짐
			Thread.sleep(SHORT_INTERVAL);
			pin.low(); // 전기가 끊기면서 불이 꺼짐
			Thread.sleep(SHORT_INTERVAL);
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(LETTER_INTERVAL);

			// e
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(LETTER_INTERVAL);

			// l
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);

			pin.high();
			Thread.sleep(LONG_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);

			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(LONG_INTERVAL);

			// l
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);

			pin.high();
			Thread.sleep(LONG_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);

			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(LONG_INTERVAL);
		}
	}
}

 

 


Chapter 4. 자바 기술의 응용 : 안드로이드 애플리케이션 만들기

#안드로이드 앱 개발은 어떻게 하는가?

구글에 'andriod development documentation' 검색 - 첫 앱 빌드 - 'android studio*' 설치

*android studio : 안드로이드 어플을 쉽게 만들 수 있게 해주는 무료 개발 도구 

해당 프로그램에서 자바 언어로 코드 작성,디자인으로 미리 구현해보기, 기기별로 실행해보기가 가능하다.

 

https://developer.android.com/docs?hl=ko 

 

Documentation  |  Android 개발자  |  Android Developers

이 섹션에서는 Android 핸드셋, Wear OS by Google, Android TV, Android Auto, Android Things 등을 빌드하는 데 필요한 가이드와 API 참조를 제공합니다.

developer.android.com

https://youtu.be/8Ink45kZTA4