• 검색 결과가 없습니다.

자바 네트워크 프로그래밍

N/A
N/A
Protected

Academic year: 2022

Share "자바 네트워크 프로그래밍"

Copied!
45
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

자바 네트워크 프로그래밍

(OCJP 국제공인자격 취득 중심 )

충북대학교 최민

(2)

java.awt Package

java.awt 패키지는 자바 애플리케이션 프로그래밍 인터페 이스(API : Application Programming Interface)의 일 부로서 그래픽 처리를 담당하는 컴포넌트들을 포함합니다.

, 화면상에 윈도우를 그리고, 그 위에 버튼이나 텍스트 필 등을 붙이는데 필요한 GUI 프로그래밍 도구와 이에 관련 기능을 제공합니다. 따라서, 응용 프로그램 개발자는 이러 그래픽 처리를 위한 컴포넌트를 사용하여 애플리케이션의 그래픽 사용자 인터페이스(GUI : Graphical User

Interface)를 개발할 수 있습니다.

AWT란 Abstract Window Toolkit의 약자인데, Abstract 라는 단어가 붙은 이유는 이 패키지를 이용하여 특정한 운영 체제에서만 수행되는 GUI 프로그램을 작성하는 것이 아니라,

(3)

3

출제기준

1. 컴포넌트(java.awt.Component)의 배경색, 전경색, 크, 활성/비활성화 등의 속성을 조정하는

setBackground(), setForeground(),

setEnabled(boolean), setVisible(boolean) 메소드의 사용법을 확실히 이해합니다. 따라서, 모양이 제시되어 있고, 크기가 변경되었을 때의 처리 방식이 결정되어 있는 GUI를 화면에 표시하는 코드를 작성할 수 있어야 합니다.

2. GUI 컴포넌트들(button, Canvas, Checkbox, Choice, Label, List, Scrollbar, TextField, TextArea)을 사용한 코드를 작성할 수 있어야 합니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(4)

출제기준

3. 이벤트 처리를 위한 리스너 클래스와 메소드를 작성하고, 리스너 메소드 안에서 Event 인수를 이용하여 이벤트가 발 생한 Component는 무엇이고, 이벤트 발생시 마우스의 위 치는 어디며, 이벤트의 본질은 무엇인지 등에 대한 정보를 추 출할 수 있어야 합니다.

4. menu 관련 컴포넌트들(MenuComponent, MenuBar, MenuItem, Menu, CheckboxMenuItem, PopupMenu) 상속관계를 알고 설명할 수 있어야 합니다.

(5)

5

button, checkbox, checkboxgroup, label, list, textarea, textfield

버튼(button)

버튼(button)은 GUI 컴포넌트 중에서도 가장 많이 사용되는 컴포넌 트로서 일반적으로 마우스로 클릭하는 이벤트에 대하여 원하는 행위 를 하도록 프로그램을 작성합니다.

Button();

Button(String label);

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(6)

버튼 (button)

버튼 객체를 생성하는 데에는 두가지 종류의 생성자 메소드 사용할 수 있습니다. 두 번째 생성자 메소드를 이용하는 경우는 버튼 객체에 출력될 레이블을 처음부터 지정하여 줄 있습니다. 그렇지 않고 버튼 객체를 일단 생성한 뒤

setLabel() 메소드를 사용하여 차후 설정할 수도 있습니다.

다음 그림은 프레임 클래스를 상속받는 객체에 "Testing"이 라는 문자열을 갖는 버튼(Button) 객체를 추가한 것입니다.

(7)

7

체크박스 (checkbox)

체크박스는 문자열 레이블을 갖는 선택박스 입니다. 체크박 객체는 선택유무를 결정하는 참(true)과 거짓(false)의 가지 상태를 가집니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(8)

체크박스 (checkbox)

체크박스 그룹(라디오 버튼 객체)과는 달리 체크박스 객체는 중복선택이 가능한 특성을 가집니다. 즉, 위 그림에서 Milk 함께 Sandwitch를 함께 선택하는 경우 Milk와

Sandwitch 두개의 true값을 가지게 됩니다. 그리고, 체크 박스 객체의 생성시에 true, false 상태 값을 특별히 지정하 않는 경우 디폴트 값인 false로 설정됩니다.

(9)

9

체크박스 그룹 (CheckboxGroup)

체크박스 그룹은 라디오 버튼을 구현하기 위해 체크박스 객 체들을 한데 묶을 때 사용됩니다. 체크박스 객체는 다중 선택 가능한 반면 체크박스 그룹을 통한 라디오 버튼 객체는 단 선택만 가능합니다. 즉, 한번에 한개의 객체만 true값을 가질 수 있습니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(10)

Choice 객체

Choice 객체는 흔히 콤보 박스(Combo Box)라고도 불리우, 여러개의 아이템중에서 하나를 선택할 수 있도록 합니다.

사용자가 마우스로 아래쪽 화살표 버튼을 누르면 선택가능한 모든 아이템들이 나타납니다.

그림은 Choice 객체의 생성 예 입니다. Choice 객체에서 제공하는 몇 가지 부가적인 메소드로 사용자가 선택한 아이 템이 무엇인지 혹은 몇 번째 아이템인지 확인하고자 할 때

(11)

11

List 객체

List 객체는 선택가능한 여러 아이템들을 포함하며 이들의 수가 화면에 표현할 수 있는 것보다 많은 경우 스크롤 기능을 제공하는 선택 박스입니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(12)

List 객체

List 객체를 생성하는 것은 앞의 Choice 객체를 생성하는 방 법과 유사합니다. List 객체의 특정 아이템을 한 번 클릭하는 것은 item 이벤트를 발생시키며, 더블 클릭을 하는 것은

action event를 발생시킵니다. 따라서, 한 번 클릭하는 하는 것은 특정 아이템을 선택을 의미하고, 두 번 클릭하는 것은 아이템의 선택에 대한 프로그램의 특정한 행위를 수행함 의미합니다. List 객체도 Choice 객체와 마찬가지로 사용 자가 선택한 아이템이 무엇인지 혹은 몇 번째 아이템인지 파 악하기 위한 다양한 메소드들을 제공합니다.

List 객체에 포함된 아이템의 수가 많으면 우측에 스크롤바 가 자동으로 나타납니다.

(13)

13

List 객체

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(14)

Label 객체

Label은 한 줄짜리 텍스트 문자열을 포함하는 읽기 전용의 선택 기능이 없는 컴포넌트 입니다. Label 객체는 주변에 경 계선을 갖지 않으며 사용자는 객체안에 담겨 있는 문자열 밖 에는 볼 수 없습니다. 또한, 어떠한 이벤트도 발생 시키지 않 습니다. 결국은, GUI 프로그램의 특정 위치에 문자열을 출력 하기 위해 사용하는 컴포넌트라 볼 수 있습니다. 주로, 다른 컴포넌트의 기능 혹은 의미를 표시하기 위해서 해당 객체 옆 위치됩니다. 다음 그림은 Label 객체를 사용한 예제 프로 그램의 실행결과 입니다.

(15)

15

Label 객체

Label 객체 역시 버튼 객체와 같이 몇 가지 다른 종류의 생성 함수를 제공하고 있는데 Label 없이 생성하려는 경우 인 없는 Label() 생성자를 사용하고 처음부터 Label을 주어 Label 객체를 생성하는 경우 String 타입의 인수를 취하는 Label(String text) 생성자를 호출합니다. 그 뿐아니라 Label 객체의 문자열 정렬 방향에 대한 옵션도 지정하고자 한다면 Label(String text, int alignment)를 사용합니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(16)

Scrollbar 객체

Scrollbar 객체는 수직(vertical)과 수평(horizontal)의 두 가지 종류가 있으며 어떤 주어진 수의 범위으로부터 하나의 값을 선택하는 것을 나타냅니다. 스크롤 바의 슬라이더

(slider)는 그 위치에 따라 정해진 영역에서의 상대적인 현 값을 나타냅니다. 이러한 슬라이더를 움직이는 방법은 여 가지가 있는데, 기본적으로 위, 아래 혹은 좌, 우의 이동버 튼을 누르면 Scrollbar의 생성 시 지정한 최소 단위 만큼 슬 라이더가 이동합니다. 또, 슬라이더와 이동버튼 사이의

Scrollbar 영역을 클릭하면 해당 위치로 슬라이더가 직접 이 동합니다. 마지막으로, 슬라이더를 직접 드래그하여 원하는 위치에 옮겨 놓을 수도 있습니다.

(17)

17

Scrollbar 객체

그림은 Scrollbar 객체의 사용 예를 보여줍니다. 이

Scrollbar 객체 데모에서는 다음과 같은 인수를 생성자에 제 공하여 객체를 생성하였습니다.

Scrollbar(Scrollbar.HORIZONTAL, 0, 50, 0, 300);

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(18)

Scrollbar 객체

위에서 두 번째 인수 0은 Scrollbar의 슬라이더가 갖는 초기 값을, 세 번째 인수 50은 슬라이더의 폭을 나타냅니다. 다음 으로 네 번째와 다섯 번째 인수는 Scrollbar가 갖는 최소 및 최대값을 나타냅니다. 첫 번째 인수는 Horizontal

Scrollbar인지 Vertical Scrollbar인지를 지정합니다. 스크 바 생성자의 세 번째 인수인 슬라이더의 폭이 50이란 이 야기는 300의 영역에서 50만큼에 해당하는 부분을 제외한 250만큼에 대한 선택이 가능하다는 이야기 입니다.

실제로, Scrollbar의 생성자를 호출하는 부분의 소스 코드를 다음과 같이 변경하면 좀 전과는 다른 결과가 나타납니다.

(19)

19

TextArea 객체

TextArea 객체는 사용자에게 여러 줄의 문자열 정보를 보여 주거나 입력받을 수 있도록 하는 컴포넌트 입니다. 포함하는 정보의 양에 따라 우측과 하단에 스크롤바 객체가 생성될 수 있어 상하 스크롤 또는 좌우 스크롤을 지원합니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(20)

TextArea 객체

TextArea객체는 포함할 수 있는 문자의 양을 조절하거나 문자열 자체를 설정할 수 있도록 하는 다양한 메소드를 제공합니다. setRows() 메소드 TextArea 객체의 행의 수를 설정하며, setColumns() 메소드는

TextArea 객체의 열의 수를 지정합니다. 그리고, setText() 메소드는 TextArea 의 상위 클래스인 TextComponent 클래스에 속하여 있는 메소드로 텍스트 문자열의 내용을 설정합니다.

뿐만 아니라, TextArea객체의 현재 상태를 설정할 수 있는 메소드를 제 공합니다. TextComponent 클래스의 메소드인 setEditable()을 사용 하여 TextArea 객체를 편집가능하도록(Editable) 하거나 읽기전용

(not Editable)으로 설정할 수 있습니다. 예를들어, setEditable(true);

해당 객체를 편집가능하도록 하며 기본값은 편집가능한 상태입니다.

(21)

21

TextField 객체

TextField 객체는 단일 행 문자열을 출력하거나 입력받습니. 화면에 보이는 것 보다 많은 문자열을 입력하는 경우 자 동으로 좌우 스크롤 기능을 제공합니다.

TextField 객체의 생성자를 중에는 public

TextField(String text, int columns);과 같은 형태로

TextField 객체의 내용이나 컬럼의 수를 처음부터 지정할 수 있도록 할 수도 있습니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(22)

컨테이너 (Container)

다른 컴포넌트들을 관리하거나 포함할 수 있는 객체로 레이 아웃의 속성을 가지며 프레임(Frame), 패널(Panel), 윈도(Window) 등이 있습니다. 컨테이너 객체는 컴포넌트나 다른 컨테이너를 포함할 수 있습니다. 컴포넌트를 컨테이 너에 추가할 때에는 add() 메소드를 사용합니다.

Component add(Component comp);

Component add(Component comp, int index);

void add(Component comp, Object constraints);

void add(Component comp, Object constraints, int index);

Component add(String name, Component comp);

(23)

23

컨테이너 (Container)

컨테이너 클래스에서는 여러 가지 다른 종류의 add() 메소 드를 오버로딩(overloading)하고 있으며 이들은 컴포넌트 컨테이너에 추가하기 위한 여러 가지 방법을 제공합니다.

번째 add() 메소드는 가장 전형적인 컴포넌트 추가 메소 드로 지정된 컴포넌트를 메소드가 불리워지는 컨테이너에 추 가합니다. 두 번째 것은 해당 컴포넌트를 특정 인덱스로 지정 위치에 삽입합니다. 그리고 세 번째와 네 번째 메소드와 같이 인수로 제약조건(constraints)을 주는 방법은 추후 해 컴포넌트를 제약조건으로 다시 참조하고자 하기 위함입니.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(24)

레이아웃

GUI 응용 프로그램을 설계할 때 고려하여야 할 부분중에는 사용자와 상호작용하는 컴포넌트들의 위치와 크기도 포함됩 니다. 그리고, 사용자가 윈도우의 크기를 재조정 할때 이러한 컴포넌트들이 어떻게 변화되어야 하는지 또한 생각하여야 합 니다. 이처럼 복잡한 작업들이 자바에서는 레이아웃 매니저 의해서 자동으로 처리되며 프로그래머는 단지 레이아웃 매니저가 구현하는 여러 가지 레이아웃 중 하나를 선택하기 하면 됩니다.

(25)

25

레이아웃

레이아웃 매니저란 어떤 컨테이너 객체 내부에서 한 개 이상 컴포넌트 객체들을 배치할 수 있도록 하는데 필요로하는 방법을 정의해 놓은 인터페이스 입니다. 그 밖에도 컨테이너 크기가 변경되었을 때라든자 새로운 요소가 추가되었을 적절한 재조정 작업도 수행합니다. 자바 AWT에 있는 컨 테이너 객체들 즉, 패널(Panel), 프레임(Frame), 윈도우 (Window), 다이얼로그(Dialog) 등은 모두 레이아웃 매니 저를 포함하고 있습니다.

AWT에서 정의해 놓은 LayoutManager 인터페이스를 구 현하는 레이아웃 매니저 클래스에는 다섯 가지 종류가 있습 니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(26)

레이아웃

■ BorderLayout ■ CardLayout ■ FlowLayout

■ GridBagLayout ■ GridLayout

(27)

27

다음은 여러 가지 레이아웃 매니저들의 클래스 상속관계를 나타낸 그림입니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(28)

FlowLayout

FlowLayout은 패널(Panel)계열 컨테이너(Container)에 기본적으로 적용되는 레이아웃 매니저(LayoutManager) 입니다. 당연히 Panel 클래스의 하위 클래스인 Applet 클래 스의 경우에도 특별히 레이아웃 매니저를 변경하지 않는 한 FlowLayout이 적용됩니다.

FlowLayout 레이아웃 매니저는 컴포넌트들을 왼쪽에서 오 른쪽으로 행 우선으로 배치합니다. 즉, 한 행이 모두 차면 다 행으로 넘어가 다시 왼쪽에서 오른쪽으로 컴포넌트들을 배치합니다.

(29)

29

FlowLayout

FlowLayout의 가장 큰 특징은 컨테이너의 크기를 사용자가 변경시켰을 때 그 위에 붙어 있는 각 Component의 크기는 변하지 않고, 상대적인 위치만 변한다는 것입니다. 예를 들어, 나타내야 할 Button이 다섯 개 있는데, 자리가 부족하여 한 줄에 다섯 개의 Button이 다 들어갈 수 없으면 나머지

Button들은 자동으로 다음 줄에 표시됩니다. FlowLayout 또 다른 특징으로 FlowLayout은 각 컴포넌트에 따라서 최적의 크기(preferred size)로 설정된 크기를 유지합니다.

따라서, 컨테이너의 크기 혹은 윈도우의 크기를 변경시키는 행위와는 무관하게 컴포넌트의 크기는 유지됩니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(30)

FlowLayout

위에서 언급한 바와 같이 Panel과 Applet에 대해서는

FlowLayout이 디폴트 레이아웃 매니저로 설정되어 있듯이 컨테이너 별로 디폴트 레이아웃 매니저가 지정되어 있습 니다. 그런데, 만약 현재 컨테이너에 이를 변경하여 적용하고 싶다면 컨테이너 클래스의 메소드인 setLayout() 메소드에 임의의 레이아웃 매니저 객체를 넘겨주어 호출하면 됩니다.

예를들어, f 핸들 변수가 가리키는 Frame의

LayoutManager를 FlowLayout으로 하고자 한다면 다음 같이 사용하면 됩니다.

(31)

31

FlowLayout

FlowLayout 클래스는 세가지 다른 종류의 오버로딩 (overloading)된 생성자를 제공합니다.

f.setLayout(new GridLayout());

FlowLayout();

FlowLayout(int alignment);

FlowLayout(int alignment, int horizontalgap, int verticalgap);

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(32)

FlowLayout

번째 인수인 alignment는 LEFT, RIGHT, CENTER 세 가지 중 하나를 선택할 수 있으며 기본값(default)으로는 CENTER가 설정되어 있습니다. 두 번째와 세 번째 인수인 horizontalgap과 verticalgap은 각각 컴포넌트들 간의 수, 수평 간격을 지정할 수 있도록 하고 있습니다. 따라서, 모 설정을 디폴트 값으로 사용하고 싶은 경우 첫 번째 생성자 사용하면 되고, 컴포넌트들의 배치를 보다 세밀하게 하고 한다면 두 번째 혹은 세 번째 것을 사용하면 됩니다.

(33)

33

기본 예제

예제에서는 FlowLayout을 이용하여 Frame 위에

Button을 6개 배치하고 있습니다. 프로그램 수행 후 Frame 크기를 변경하면서 각 Button의 위치와 크기에 어떤 변 화가 있는지 살펴봅시다.

import java.awt.*;

public class FlowLayoutTest extends Frame { FlowLayoutTest() {

Button b1 = new Button("Button 1");

Button b2 = new Button("Button 2");

Button b3 = new Button("Button 3");

Button b4 = new Button("Button 4");

Button b5 = new Button("Button 5");

Button b6 = new Button("Button 6");

add(b1);add(b2);add(b3);add(b4);add(b5);add(b6);

}

public static void main(String args[]) {

FlowLayoutTest flt = new FlowLayoutTest();

flt.setLayout(new FlowLayout());

flt.setSize(300, 100);

flt.setVisible(true);

} }

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(34)

기본 예제

(35)

35

기본 예제

결과는 Frame 클래스를 상속받은 FlowLayoutTest 클 래스의 객체를 생성하고 6개의 Button 객체를 생성하여 컨 테이너에 추가한 형태입니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(36)

기본 예제

윈도우의 크기를 앞에서와 같이 변경하였을 경우 한 행에 들 어갈 수 있는 컴포넌트들의 수는 윈도우의 수평방향 폭에 의 존적입니다. 따라서, 위와 같이 윈도우의 수평크기를 줄이면 윈도우내 한 행에 포함되는 컴포넌트의 수는 줄어들고 대신 다음 행에 추가로 컴포넌트를 배치하게 됩니다.

(37)

37

실전 문제

What is a layout manager that doesn't change its Component size regardless of its Frame size?

( )

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(38)

해설 &

Frame의 크기가 변하더라도, 각 Component의 크기는 변 하지 않는 LayoutMan ager를 묻고 있습니다. 정답은 이 모 듈에서 우리가 공부한 대로 FlowLayout입니다. 만약 SCJP 시험에 이런 문제가 출제된다면 대・소문자를 주의하시기 바 랍니다. FlowLayout은 자바 AWT 패키지에 정의되어 있는 클래스의 이름으로, 자바에서는 클래스 이름을 비롯한 식별 자에서 대・소문자를 구별하기 때문입니다.

답은 FlowLayout 입니다.

(39)

39

BorderLayout

BorderLayout은 윈도우(Window) 계열 컨테이너

(Container)에 기본적으로 적용되는 LayoutManager 입 니다. 당연히 Window 클래스의 하위 클래스인 Frame 클래 스의 경우에도 특별히 LayoutManager를 변경하지 않는 한 BorderLayout이 적용됩니다.

BorderLayout 레이아웃 매니저는 어떤 컴포넌트를 컨테이 너의 동서남북의 네 방향으로 배치시킬 수 있는 기능을 제공 합니다. 나머지 공간은 컨테이너의 중앙에 배치되는 컴포넌 트에게 할당됩니다. 결과적으로, North, South, East,

West, Center의 총 5방향에 대하여 컴포넌트를 배치할 수 있습니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(40)

BorderLayout

BorderLayout의 가장 큰 특징은 Container의 크기를 사용 자가 변경시켰을 때 그 위에 붙어 있는 각 Component의 상 대적인 위치는 변하지 않고, 크기만 변한다는 것입니다. 따라, BorderLayout이 적용된 Container의 경우에

Component를 붙일 때 Frame의 어느 부분에 붙일지 add() 메소드에 다음과 같이 지정해야 합니다.

boderlayout.add(component, compass);

borderlayout BorderLayout이 적용된 컨테이너 객체 component 컨테이너 위에 삽입할 컴포넌트 객체 compass 삽입될 위치를 나타내는 상수

(41)

41

예를들어, Frame 클래스를 상속받는 어떤 클래스의 객체 f1 컴포넌트 c1을 북쪽 위치에 삽입하려면 다음과 같이

add() 메소드를 호출합니다.

다음은 BorderLayout에서 컴포넌트 배치에 사용되는 5가 방향을 직관적으로 이해할 수 있도록 하기 위한 그림입니.

f1.add(c1, BorderLayout.NORTH);

(42)

add() 메소드의 두 번째 인수가 취하는 상수와 상수의 의미 다음 표와 같습니다.

상수 의미

BorderLayout.NORTH 컨테이너 뒤쪽에 배치

BorderLayout.SOUTH 컨테이너 아래쪽에 배치

BorderLayout.EAST 컨테이너 오른쪽에 배치

BorderLayout.WEST 컨테이너 왼쪽에 배치

BorderLayout.CENTER 나머지 영역에 배치

(43)

43

기본 예제

예제에서는 BorderLayout을 이용하여 Frame 위에 Button을 배치하고 있습니다. 프로그램 수행 후 Frame의 크기를 변경하면서 각 Button의 위치와 크기에 어떤 변화가 있는지 살펴봅시다.

import java.awt.*;

public class BorderLayoutTest extends Frame { Button b1, b2, b3, b4, b5;

BorderLayoutTest() {

setLayout(new BorderLayout());

b1 = new Button("Button 1");

b2 = new Button("Button 2");

b3 = new Button("Button 3");

b4 = new Button("Button 4");

b5 = new Button("Button 5");

add(b1, BorderLayout.NORTH);

add(b2, BorderLayout.SOUTH);

add(b3, BorderLayout.EAST);

add(b4, BorderLayout.WEST);

add(b5, BorderLayout.CENTER);

}

public static void main(String args[]) {

BorderLayoutTest blt = new BorderLayoutTest();

blt.setSize(300, 100);

blt.setVisible(true);

}

} 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

(44)

기본 예제

다음은 BorderLayout을 사용한 위 예제 프로그램의 실행 모습입니다.

(45)

45

기본 예제

윈도우(혹은 컨테이너)의 크기를 변경하는 경우 각

Component의 상대적인 위치(NORTH, SOUTH, EAST, WEST, CENTER)는 변하지 않고, 크기만 변하는 것을 확인 수 있습니다.

자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

참조

관련 문서

 Step 2: label each node by the # of shortest paths from the root E..

smttiy hacmp > Extended Configuration > Extended Topology Configuration > Configure a HACMP Persistent Node IP Label / Addresses > Add a Persistent Node IP

아래와 같이 List of submitted papers가 나타나면, 오른쪽 Presentation File Upload 버튼

알버트 움직임 명령어를 다음과 같이 바꿔보세요.

이러한 연구 결과와 몇 가지 연구의 제한점에 불구하고, 본 연구는 특성화 고등학교 저성취 학생을 대상으로 집단미술치료 프로그램을 실시함으로써 자 아존중감을 향상시킬

먼저 우리나라도 청년실업의 해소를 위한 여러 가지 종합대책들을 시행하 였거나 시행하고 있는데 몇 가지 예를 들면 년 월의 청년실업 종합대 책 과 년 월의

• LabVIEW 5.X 이하 버전 시리얼 통신 전용 함수 인 Serial Read.vi 또는 Serial Write.vi를 지원했 지만 최근 함수를 Functions 팔레트에서 숨기고 편리한 VISA

Key Words: Packaging Design, Label Design, Brand Image, Visual Elements, Tea And Beverage... 이런 현황에 비추어 기업들은 소비자의 수요를 충족시키는 동 시에