본문 바로가기

JAVA

(125)
Android ▷ 스마트폰 → 통화 기능 + 컴퓨터 + 다양한 기능 내장(MP3, 카메라, DMB, GPS 등) → 스마트폰의 운영체제 ▷ 안드로이드 버전의 변천사 ▷ 안드로이드의 주요 기능 → 애플리케이션 프레임워크를 통해서 제공되는 API를 사용함으로써 코드를 재사용하여 효율적이고 빠른 애플리케이션 개발 가능함 → 모바일 기기에 최적화된 달빅 또는 아트런타임(ART) 제공함 → 2D 그래픽 및 3차원 그래픽을 최적화하여 표현함 → 모바일용 데이터베이스인 SQLite를 제공함 → 각종 오디오, 비디오 및 이미지 형식을 지원함 → 모바일 기기에 내장된 각종 하드웨어(블루투스, 카메라, 나침반, WiFi등) 지원함 → 이클립스 IDE 또는 Android Studio를 통해서 강력하고 빠른 개발 환경 제공함 ▷ 안드로이드..
swing (Container) ▷ JPanel → 여러 개의 컴포넌트를 하나로 묶는 경량 컨테이너 → 기본 레이아웃 : FlowLayout → 주로, 프레임(JFrame)에 패널(Jpanel)을 부착하여 컴포넌트를 배치하는 형태로 사용 ex_container.Clone_Ex1.java package ex_container; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Clone_Ex1 { public Clone_Ex1() { showFrame(); } public void showFrame() { JFrame f = new JFrame("Clone_Ex1"); f.setBounds(600,400,600,400); f.setDefaultCl..
swing (Component) ▷ JTextField → 텍스트 한 줄을 입력 가능한 컴포넌트 → BorderLayout에 바로 부착할 경우 기본 생성자로 생성 가능하지만, 주로 JPanel 등에 부착해서 사용할 때 생성자 파라미터로 컬럼길이를 전달해야 함 → getText() 메서드로 입력된 텍스트를 가져오고, setText() 메서드로 새 텍스트를 표시할 수 있다. → ActionListener를 연결하여 텍스트 입력 후 엔터키에 대한 동작 처리 가능 → KeyListener를 연결하면 키보드에서 눌러지는 키에 대한 동작 처리 가능 ex_component.Clone_Ex1 package ex_component; import java.awt.*; import java.awt.event.*; import javax.swing.*; p..
swing (Layout 변경2) ▷ GridLayout → 컴포넌트를 테이블(표) 형태로 배치하는 레이아웃 → 행, 열 형태의 구조를 가지며, 배치되는 컴포넌트의 크기가 균등함 → GridBagLayout 사용 시 크기가 다른 행, 열 구조 편성 가능 → 첫 행의 좌측열부터 우측열 방향, 다음행의 좌측열부터 우측열 순으로 배치 → BorderLayout과 마찬가지로 컨테이너 크기가 변경되면 컴포넌트의 크기만 변경되고, 컴포넌트의 배치 위치는 변경되지 않음 ex_layout.Clone_Ex4.java package ex_layout; import java.awt.*; import javax.swing.*; public class Clone_Ex4 { public Clone_Ex4() { showFrame(); } public void s..
swing (Layout 변경) ▷ 레이아웃 변경 → 기존에 설정된 레이아웃을 변경하여 다른 형태로 컨포넌트에 배치 가능 → 컨테이너 객체 생성 시 생성자에 레이아웃 객체를 전달하거나 → 컨테이너 객체의 setLayout() 메서드를 호출하여 레이아웃 변경 가능 ▷ FlowLayout → 컨테이너 내의 컴포넌트들을 흐름에 따라 자연스럽게 배치하는 레이아웃으로 좌 → 우, 상 → 하 방향으로 컴포넌트를 차례대로 배치 → 컨테이너 크기가 변경되면, 컴포넌트의 크기는 유지되나, 위치가 변경됨 (컨테이너 크기에 따라 위치가 자동으로 조절됨) → 하나의 컨테이너 내부에 여러 개의 컴포넌트 배치가 가능함(위치 지정 불가) → JPanel(패널)의 기본 레이아웃 → 생성자에 정렬 방식을 전달하여 변경 가능 (파라미터 : FlowLayout.XXX ..
swing (Layout) ▷ BorderLayout → 대상 컨테이너의 동, 서, 남, 북, 중앙 5개의 영역으로 분할하여 컴포넌트를 배치  → JFrame 객체(프레임)의 기본 레이아웃  → 별도의 설정이 없을 경우 기본적으로 BorderLayout이 적용되어 있음  → 배치할 영역을 지정하는 경우 add() 메서드의 두 번째 파라미터로 BorderLayout.XXX 상수로 위치 지정 가능  → 만약, 영역 지정을 생략할 경우 기본 영역이 CENTER 영역으로 지정됨  → 한 영역 당 1개의 컨테이너 또는 컴포넌트 배치 가능  → 만약, 한 영역에 두 개 이상의 컴포넌트 등을 배치할 경우 마지막에 배치된 대상만 표시됨  → BorderLayout이 적용된 대상의 크기를 변경하더라도 내부에 배치된 컴포넌트의 크기만 ..
Swing(event_handling) ▶ 컴포넌트(버튼 등)에서 사용자에 의해 어떤 상호작용이 일어나는 것 ex) 버튼 클릭, 마우스 이동, 키보드 입력, 체크박스 선택 등 ▶ 이벤트가 발생했을 때 어떤 동작을 수행하기 위해서는 대상 컴포넌트와 이벤트를 처리하는 이벤트 리스너를 서로 연결 해야함  ▷ 각 컴포넌트에 따라 서로 다른 리스너가 제공됨 ex) 버튼 클릭 이벤트 담당 : ActionListener 사용  ▷ 컴포넌트 객체의 addXXX() 메서드를 호출하여 리스너 객체를 파라미터로 전달하여 연결. 이 때, XXX은 담당 리스너 인터페이스(또는 클래스) 이름 ex) btn.addActionListener(리스너 객체); ▶ 컴포넌트에 특정 이벤트가 발생했을 때 수행할 동작을 지정하여 처리하는 것 ..
Swing  컨테이너와 컴포넌트  컨테이너 : 여러 컴포넌트를 하나로 묶어서 부착 가능한 객체 프레임과 패널을 주로 사용 JFrame 클래스와 JPanel 클래스로 구현  컴포넌트 : 화면을 구성하는 각각의 요소 버튼, 체크박스, 라디오 버튼, 텍스트 필드, 텍스트 에어리어 등 컨테이너에 부착하여 사용 각 컴포넌트에서 사용자로부터 어떤 동작이 발생하면 해동 동작을 처리하는 이벤트 처리 필요  최상위 컨테이너 다른 컨테이너에 포함되지 않고도 화면에 출력되며 독립적으로 존재 가능한 컨테이너 창(윈도우)을 생성하기 위해서는 Window 계열 개체 생성 필요 주로 JFrame 클래스를 사용 JFrame 객체를 생성하거나 JFrame 클래스를 상속받는 서브클래스를 정의하여 창 생성 class Ex1 extends J..