JAVA
-
컨테이너(Container) & 캔버스(Canvas)JAVA/GUI - Frame 2020. 10. 12. 23:42
컨테이너는 컴포넌트로 부터 상속 받은 하나의 윈도우 영역을 의미 - 다른 컴포넌트를 포함할 수 있는 GUI 컴포넌트 - java.awt.Container를 상속받음 - 다른 컨테이너에 포함될 수 있음 - AWT 컨테이너 : Panel, Frame, Applet, Dialog, Window - Swing 컨테이너 : 다른 컨테이너에 속하지 않고 독립적으로 존재 가능한 컨테이너 - 최상위 컨테이너 : 다른 컨테이너에 속하지 않고 독립적으로 존재 가능 - 스스로 화면에 자신을 출력하는 컨테이너 : JFrame, JDialog, JApplet AWT 컨테이너 Color getBackground() 컴퍼넌트의 배경 색상을 리턴 Font getFont() 컴퍼넌트의 폰트를 리턴 Color getForeground(..
-
-
Thread joinJAVA/Thread 2020. 10. 12. 18:30
join은 완전히 양보하는 함수이다. join을 한 스레드는 대기 상태(wait)로 된다. 이 대기 상태를 풀어주는 방법도 있다. join함수의 매개변수로 시간을 넣어주면 된다. 그러면, 넣어준 시간 후에 다시 스레드가 작업을 한다. 즉, join함수는 오버로딩되어 있는 함수이다. 프로그램 실행결과 threada1 쓰레드는 i가 10일 때, join함수가 호출이 되는데, 매개변수로 2초가 전달된다. 이는 2초 후에 threada1이 호출되어 작업을 진행하는 것을 볼 수 있다. 이번에는, join함수의 매개변수를 주지 않고 호출해보자. 프로그램 실행결과 위의 결과를 보다시피, threada1은 양보를 한 이후에, 작업을 완료하지 못한 상태로 있는다. 소스 파일
-
Thread의 StateJAVA/Thread 2020. 10. 12. 18:17
프로그램 실행결과 소스 파일 StatePrintThread클래스의 run함수에서 targetThread 스레드가 NEW상태면 targetThread 스레드의 start함수를 호출하는 내용이다. 그리고 나서 targetThread 스레드의 상태가 종료 상태이면 작업을 종료한다. TargetThread 클래스의 run함수의 맨 마지막 sleep함수를 주석처리하고 실행을 해보자. * 1.StatePrintThred객체는 스레드로 동작하며 작업을 계속진행하는 객체이다. * 2.위의 객체를 생성하면서 다른 쓰레드 객체를 전달받아 저장한다. * 3.저장된 객체는 start()함수를 이용해 실행되지 않은 상태이다. 이 때 getState()함수를 이용하여 현재 상태를 확인할 수 있다. * 4.start()함수가 실행..
-
스레드 자원의 동기화 (키워드 synchronized)JAVA/Thread 2020. 10. 12. 17:59
우선 앞에서 스레드는 시 분할 방식이라고 하였다. 예제1 프로그램 실행결과 소스 파일 예제2 위의 소스를 계속 실행해서 프로그램 결과는 세 종류로 나뉜다. case1 case2 case3 소스 파일 위의 소스에서 Sleep함수의 주석을 제거해보자. 주석을 제거한 부분은 아래의 클래스이다. 프로그램 실행결과 일반적인 경우라면 USER1에서 100의 값이 출력되어야 하는데, 200이 출력 되는 이유는 Sleep함수 때문이다. User1 쓰레드가 작업을 하려고 할 때 메모리 변수에 100값을 저장하고 나서 바로 2초 간의 지연이 발생하는데, 이 때 User2쓰레드가 시작 되어 메모리 변수에 200값을 저장하고 나서 이 User2 쓰레드도 2초 간의 지연이 발생한다. 이 때 메모리 변수에는 200값이 저장되어 ..
-
PropertiesJAVA/Collection Framework 2020. 10. 12. 11:57
Properties - 속성값 부여를 목적으로 한다. Properties는 Map으로 만들어진 클래스이다. 프로그램 실행결과 소스 파일 다른 예제 소스 코드 import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; public class temp { public static void main(String[] args) throws NamingException { //특정 객체 생성시 생성자에 초기값으로 속성값을 주는 역할을 한다. Properties p = new Properties(); p.put(Context.INITIAL_C..