목록

'java' 76건

  • 어댑터(Adapter) 클래스
    프로그래밍 언어/JAVA · 댓글 1
    리스너 인터페이스를 상속받아 이벤트 리스너를 구현할 때 리스너 인터페이스의 메서드를 모두 구현하여야 하는 부담이 있습니다.자바의 JDK에는 이런 부담을 줄이기 위해 리스너 인터페이스를 미리 구현해 놓은 클래스를 제공하는데 이것이 바로 어댑터 클래스(Adapter)입니다.class MouseAdapter extends MouseListener, MouseMotionListener, MouseWheelListener { public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} public v..
  • 이벤트 리스너
    프로그래밍 언어/JAVA · 댓글 1
    리스너 인터페이스이벤트 리스너란 이벤트를 처리하는 자바 프로그램 코드로서 클래스를 만듭니다. JDK는 이벤트 리스너 인터페이스(interface)를 제공하며, 개발자가 이 인터페이스를 상속받고 추상 메서드를 모두 구현하여 이벤트 리스너를 작성한다.ActionListener 인터페이스의 경우를 예로 들어봅시다. ActrionListener 인터페이스는 자바 패키지에 다음과 같이 선언되어 있습니다.interface ActionListener { public void actionPerformed(ActionEvent e); // Action 이벤트 발생 처리} 버튼을 누르는 Action 이벤트가 발생하면 actionPerformed(ActionEvent e) 메소드가 호출되고, 이때 ActionEvent 객체..
  • 이벤트 객체
    프로그래밍 언어/JAVA · 댓글
    이벤트 객체란?이벤트 객체는 현재 발생한 이벤트에 관한 정보를 가진 객체이며, 이벤트 리스너에게 전달됩니다. 모든 이벤트 객체들은 java.util.EventObject 클레스를 상속받으며, java.awt.event와 javax.swing.event 패키지에 구현되어 있습니다. 응용프로그램은 이벤트를 처리하기 위해 반드시 다음 import 문을 포함해야 합니다.import java.awt.event.*; // 이벤트 처리가 필요한 모든 소스에 포함import javax.swing.event.*; // 스윙 이벤트를 다루는 경우에 추가 포함 이벤트 객체 정보 Object getSource()getSource()는 현재 발생한 이벤트의 소스 컴포넌트의 레퍼런스를 리턴합니다. getSource()의 리턴 타..
  • 이벤트 기반 프로그래밍
    프로그래밍 언어/JAVA · 댓글 1
    이벤트 기반 프로그래밍이벤트 기반 프로그래밍(event drivem programming)은 이벤트의 발생에 의해 프로그램 실행 흐름이 결정되는 방식의 프로그래밍 패러다임입니다. 이벤트는 키 입력, 마우스 클릭, 마우스 드래그 등 사용자의 액션이나, 센서 등 외부 장치로부터의 입력, 네트워크를 통한 데이터 수신, 다른 스레드나 프로그램으로부터의 메시지 수신 등에 의해 발생합니다.이벤트 기반 응용프로그램은 각 이벤트를 처리하는 이벤트 리스너(event listener)들을 보유하며, 이벤트가 발생할 때마다 리스너가 실행됩니다. 그러므로 프로그램 내의 어떤 코드가 언제 실행될지는 전적으로 이벤트의 발생에 달려있습니다. 자바의 이벤트 기반 GUI응용프로그램 구조이벤트 리스너는 이벤트를 처리하는 프로그램 코드로..
  • 여러 컴포넌트를 가진 복잡한 GUI 만들기
    프로그래밍 언어/JAVA · 댓글 5
    컨텐트팬에 BorderLayout을 사용하면 5개의 컴포넌트만 출력 가능하고, GridLayout을 사용하면 격자 모양으로만 배치할 수 있는 등 컴포넌트의 개수와 배치 모양에 한계가 있습니다. 많은 컴포넌트을 배치하면서 다양한 모양의 GUI를 만들기 위해서는 여러 채널과 여러 배치관리자를 사용하면 됩니다. 여러 컴포넌트를 가진 GUI 만들기import javax.swing.*;import java.awt.*;public class MultiplePanelEx extends JFrame { public MultiplePanelEx() { super("Mutiple Panels and Layouts"); // 타이틀 setDefaultCloseOperation(JFrame.EX..
  • 배치관리자 없는 컨테이너
    프로그래밍 언어/JAVA · 댓글 2
    배치관리자가 없는 컨테이너가 필요한 경우모든 컨테이너는 배치관리자를 가지고, 배치관리자가 컴포넌트의 위치와 크기를 결정하도록 하는 것아 자바 GUI의 기본 정신입니다. 배치관리자는 컴포난트를 절대적인 위치에 배치하지 않고, 다른 컴포넌트의 오른쪽이나 아래와 같이 상대적인 위치에 배치합니다. 그러므로 컨테이너의 크기가 변하면 컴포넌트의 위치도 함께 변합니다.배치 관리자를 사용하면 컴포넌트의 위치에 대해 신경쓰지 않아도 되지만, 한편으로 컴포넌트의 위치를 자동 결정하는 배치관리자가 오히려 불편한 경우들이 종종 있습니다. 컴포넌트의 크기나 위치를 개발자가 결정하고자 하는 경우게임 프로그램과 같이 시간이나 마우스/키보드의 입력에 따라 컴포넌트들의 위치와 크기가 수시로 변하는 경우여러 컴포넌트들이 겹치는 효과를 ..
  • GridLayout 배치관리자
    프로그래밍 언어/JAVA · 댓글 1
    배치 방법GridLayout은 컨테이너 공간을 그리드(격자) 모양으로 분할하여 각 셀에 하나씩 컴포넌트를 배치하는 방법입니다. GridLayout은 부착되는 순서대로 컴포넌트를 셀에 배치합니다.컴포넌트를 삽입하는 방법은 다른 배치관리자와 별반 다르지 않으며 다음과 같습니다.container.setLayout(new GridLayout(4, 3)); // 4x3 분할로 컴포넌트 배치container.add(new JButton("1")); // 상단 왼쪽 첫 번째에 버튼 배치conainer.add(new JButton("2")); // 그 옆 셀에 버튼 배치 GridLayout의 생성자와 속성GridLayout 배치관리자의 생성자는 다음과 같습니다.GridLayout()GridLayout(int rows,..
  • BorderLayout 배치 관리자
    프로그래밍 언어/JAVA · 댓글 1
    배치 방법BorderLayout 배치관리자는 컨테이너 공간을 동(EAST), 서(WEST), 남(SOUTH), 북(NORTH), 중앙(CENTER)의 5개의 영역으로 분할하여 배치합니다.다른 배치관리자와는 달리 BorderLayout 배치 관리자를 가진 컨테이너에 컴포넌트를 삽입하기 위해서는, 다음과 같이 add() 메소드에 컴포넌트의 위치를 명확히 정해주어야 합니다.void add(Component comp, int index) comp 컴포넌트를 index 위치에 삽입합니다.comp: 컨테이너에 삽입되는 컴포넌트index: 컴포넌트의 위치 동: BoderLayout.EAST 서: BorderLayout.WEST 남: BoderLayout.SOUTH 북: BoderL..
  • FlowLayout 배치관리자
    프로그래밍 언어/JAVA · 댓글 1
    배치 방법FlowLayout 배치괸리자를 가진 컨테이너를 가진 컨테이너에 컴포넌트를 부착하는 방법은 다음과 같이 간딘히 add() 메서드를 이용하면 됩니다.container.setLayout(new FlowLayout());container.add(new JButton("add"));container.add(new JButton("sub"));container.add(new JButton("mul"));container.add(new JButton("div"));container.add(new JButton("Calculate")); FlowLayout 배치관리자는 컴포넌트를 왼쪽에서 오른쪽으로 배치하고, 더 이상 오른쪽 공간이 없으면 다시 아래로 내려와서 왼쪽에서 오른쪽으로 배치합니다. 컨테이너의 크..
  • 컨테이너(Container)와 배치(Layout)
    프로그래밍 언어/JAVA · 댓글 1
    컨테이너와 배치 개념컨테이너에 부착되는 컴포넌들의 위치와 크기는 컨테이너 내부에 있는 배치관리자(Layour Manager)에 의해 결정됩니다.배치와 관련하여 AWT나 스윙의 컨테이너는 다음과 같은 특징을 가집니다.컨테이너마다 배치 관리자가 하나씩 있다(하지만, 배치관리자를 삭제할 수도 있다).배치관리자는 컨테이너에 컴포넌트가 부착되는 시점에 컴포넌트의 위치와 크기를 결정합니다.컨테이너의 크기가 변경되면 배치관리자는 컨테이너 내부의 모든 컴포넌트들의 위치와 크기를 재조정합니다.배치관리자의 종류자바는 여러 종류의 배치관리자를 지원합니다. 배치관리자는 java.awt 패키지에 존재하는 클래스이며, 이들을 사용하기 위해서는 다음 import 문이 필요합니다.import java.awt.*; RowLayout컨..
  • 스윙 GUI 프로그램 만들기
    프로그래밍 언어/JAVA · 댓글 1
    스윙으로 GUI 응용프로그램을 만들기 위해서는 다음의 새 과정이 필요합니다.스윙 프레임 작성main() 메소드 작성프레임에 스윙 컴포넌트 붙이기스윙 패키지 사용을 위한 import 문스윙 패키지를 이용하기 위해서는 스윙 컴포넌트의 클래스 파일들이 존재하는 경로명 javax.swing.*를 import 해야 합니다.import javax.swing.*; 대부분의 스윙 응용프로그램은 이벤트 처리, 이미지나 도형을 그리는 부분을 함수적으로 동반하므로, 다음과 같은 import 문이 필요한 경우가 많다.import java.awt.*; // 폰트 등 그래픽 처리를 위한 클래스들의 경로명import java.awt.event.*; // 이벤트 처리에 필요한 기본 클래스들의 경로명import javax.swing...
  • 자바의 GUI
    프로그래밍 언어/JAVA · 댓글
    GUI 응용프로그램이란?GUI란 Graphical User Interface의 약자로서 이미지 혹은 그래픽을 이용하여 메뉴 등을 포함하는 화면을 구성하고, 키보드의 마우스 등의 편리한 입력 도구를 이용하여 사용자가 입력하기 편하도록 만들어진 사용자 인터페이스입니다.소프트웨어 개발자들은 프로그래밍 언어를 선택함에 있어 GUI를 작성하기에 편한 정도와 다양한 기능 여부를 중요한 기준으로 삼는다. 자바는 AWT와 Swing 패키지 등 어떤 언어보다 강력한 GUI 라이브러리를 제공하여, 소프트웨어 개발자들이 다양한 GUI를 쉽게 구성하도록 해 줍니다. AWT와 Swing 패키지자바 언어는 GUI 응용프로그램을 쉽게 작성할 수 있도록 다양한 GUI 컴포넌트(GUI Component)를 제공합니다. 자바의 GUI ..

어댑터(Adapter) 클래스

리스너 인터페이스를 상속받아 이벤트 리스너를 구현할 때 리스너 인터페이스의 메서드를 모두 구현하여야 하는 부담이 있습니다.자바의 JDK에는 이런 부담을 줄이기 위해 리스너 인터페이스를 미리 구현해 놓은 클래스를 제공하는데 이것이 바로 어댑터 클래스(Adapter)입니다.class MouseAdapter extends MouseListener, MouseMotionListener, MouseWheelListener { public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} public v..

이벤트 리스너

리스너 인터페이스이벤트 리스너란 이벤트를 처리하는 자바 프로그램 코드로서 클래스를 만듭니다. JDK는 이벤트 리스너 인터페이스(interface)를 제공하며, 개발자가 이 인터페이스를 상속받고 추상 메서드를 모두 구현하여 이벤트 리스너를 작성한다.ActionListener 인터페이스의 경우를 예로 들어봅시다. ActrionListener 인터페이스는 자바 패키지에 다음과 같이 선언되어 있습니다.interface ActionListener { public void actionPerformed(ActionEvent e); // Action 이벤트 발생 처리} 버튼을 누르는 Action 이벤트가 발생하면 actionPerformed(ActionEvent e) 메소드가 호출되고, 이때 ActionEvent 객체..

이벤트 객체

이벤트 객체란?이벤트 객체는 현재 발생한 이벤트에 관한 정보를 가진 객체이며, 이벤트 리스너에게 전달됩니다. 모든 이벤트 객체들은 java.util.EventObject 클레스를 상속받으며, java.awt.event와 javax.swing.event 패키지에 구현되어 있습니다. 응용프로그램은 이벤트를 처리하기 위해 반드시 다음 import 문을 포함해야 합니다.import java.awt.event.*; // 이벤트 처리가 필요한 모든 소스에 포함import javax.swing.event.*; // 스윙 이벤트를 다루는 경우에 추가 포함 이벤트 객체 정보 Object getSource()getSource()는 현재 발생한 이벤트의 소스 컴포넌트의 레퍼런스를 리턴합니다. getSource()의 리턴 타..

이벤트 기반 프로그래밍

이벤트 기반 프로그래밍이벤트 기반 프로그래밍(event drivem programming)은 이벤트의 발생에 의해 프로그램 실행 흐름이 결정되는 방식의 프로그래밍 패러다임입니다. 이벤트는 키 입력, 마우스 클릭, 마우스 드래그 등 사용자의 액션이나, 센서 등 외부 장치로부터의 입력, 네트워크를 통한 데이터 수신, 다른 스레드나 프로그램으로부터의 메시지 수신 등에 의해 발생합니다.이벤트 기반 응용프로그램은 각 이벤트를 처리하는 이벤트 리스너(event listener)들을 보유하며, 이벤트가 발생할 때마다 리스너가 실행됩니다. 그러므로 프로그램 내의 어떤 코드가 언제 실행될지는 전적으로 이벤트의 발생에 달려있습니다. 자바의 이벤트 기반 GUI응용프로그램 구조이벤트 리스너는 이벤트를 처리하는 프로그램 코드로..

여러 컴포넌트를 가진 복잡한 GUI 만들기

컨텐트팬에 BorderLayout을 사용하면 5개의 컴포넌트만 출력 가능하고, GridLayout을 사용하면 격자 모양으로만 배치할 수 있는 등 컴포넌트의 개수와 배치 모양에 한계가 있습니다. 많은 컴포넌트을 배치하면서 다양한 모양의 GUI를 만들기 위해서는 여러 채널과 여러 배치관리자를 사용하면 됩니다. 여러 컴포넌트를 가진 GUI 만들기import javax.swing.*;import java.awt.*;public class MultiplePanelEx extends JFrame { public MultiplePanelEx() { super("Mutiple Panels and Layouts"); // 타이틀 setDefaultCloseOperation(JFrame.EX..

배치관리자 없는 컨테이너

배치관리자가 없는 컨테이너가 필요한 경우모든 컨테이너는 배치관리자를 가지고, 배치관리자가 컴포넌트의 위치와 크기를 결정하도록 하는 것아 자바 GUI의 기본 정신입니다. 배치관리자는 컴포난트를 절대적인 위치에 배치하지 않고, 다른 컴포넌트의 오른쪽이나 아래와 같이 상대적인 위치에 배치합니다. 그러므로 컨테이너의 크기가 변하면 컴포넌트의 위치도 함께 변합니다.배치 관리자를 사용하면 컴포넌트의 위치에 대해 신경쓰지 않아도 되지만, 한편으로 컴포넌트의 위치를 자동 결정하는 배치관리자가 오히려 불편한 경우들이 종종 있습니다. 컴포넌트의 크기나 위치를 개발자가 결정하고자 하는 경우게임 프로그램과 같이 시간이나 마우스/키보드의 입력에 따라 컴포넌트들의 위치와 크기가 수시로 변하는 경우여러 컴포넌트들이 겹치는 효과를 ..

GridLayout 배치관리자

배치 방법GridLayout은 컨테이너 공간을 그리드(격자) 모양으로 분할하여 각 셀에 하나씩 컴포넌트를 배치하는 방법입니다. GridLayout은 부착되는 순서대로 컴포넌트를 셀에 배치합니다.컴포넌트를 삽입하는 방법은 다른 배치관리자와 별반 다르지 않으며 다음과 같습니다.container.setLayout(new GridLayout(4, 3)); // 4x3 분할로 컴포넌트 배치container.add(new JButton("1")); // 상단 왼쪽 첫 번째에 버튼 배치conainer.add(new JButton("2")); // 그 옆 셀에 버튼 배치 GridLayout의 생성자와 속성GridLayout 배치관리자의 생성자는 다음과 같습니다.GridLayout()GridLayout(int rows,..

BorderLayout 배치 관리자

배치 방법BorderLayout 배치관리자는 컨테이너 공간을 동(EAST), 서(WEST), 남(SOUTH), 북(NORTH), 중앙(CENTER)의 5개의 영역으로 분할하여 배치합니다.다른 배치관리자와는 달리 BorderLayout 배치 관리자를 가진 컨테이너에 컴포넌트를 삽입하기 위해서는, 다음과 같이 add() 메소드에 컴포넌트의 위치를 명확히 정해주어야 합니다.void add(Component comp, int index) comp 컴포넌트를 index 위치에 삽입합니다.comp: 컨테이너에 삽입되는 컴포넌트index: 컴포넌트의 위치 동: BoderLayout.EAST 서: BorderLayout.WEST 남: BoderLayout.SOUTH 북: BoderL..

FlowLayout 배치관리자

배치 방법FlowLayout 배치괸리자를 가진 컨테이너를 가진 컨테이너에 컴포넌트를 부착하는 방법은 다음과 같이 간딘히 add() 메서드를 이용하면 됩니다.container.setLayout(new FlowLayout());container.add(new JButton("add"));container.add(new JButton("sub"));container.add(new JButton("mul"));container.add(new JButton("div"));container.add(new JButton("Calculate")); FlowLayout 배치관리자는 컴포넌트를 왼쪽에서 오른쪽으로 배치하고, 더 이상 오른쪽 공간이 없으면 다시 아래로 내려와서 왼쪽에서 오른쪽으로 배치합니다. 컨테이너의 크..

컨테이너(Container)와 배치(Layout)

컨테이너와 배치 개념컨테이너에 부착되는 컴포넌들의 위치와 크기는 컨테이너 내부에 있는 배치관리자(Layour Manager)에 의해 결정됩니다.배치와 관련하여 AWT나 스윙의 컨테이너는 다음과 같은 특징을 가집니다.컨테이너마다 배치 관리자가 하나씩 있다(하지만, 배치관리자를 삭제할 수도 있다).배치관리자는 컨테이너에 컴포넌트가 부착되는 시점에 컴포넌트의 위치와 크기를 결정합니다.컨테이너의 크기가 변경되면 배치관리자는 컨테이너 내부의 모든 컴포넌트들의 위치와 크기를 재조정합니다.배치관리자의 종류자바는 여러 종류의 배치관리자를 지원합니다. 배치관리자는 java.awt 패키지에 존재하는 클래스이며, 이들을 사용하기 위해서는 다음 import 문이 필요합니다.import java.awt.*; RowLayout컨..

스윙 GUI 프로그램 만들기

스윙으로 GUI 응용프로그램을 만들기 위해서는 다음의 새 과정이 필요합니다.스윙 프레임 작성main() 메소드 작성프레임에 스윙 컴포넌트 붙이기스윙 패키지 사용을 위한 import 문스윙 패키지를 이용하기 위해서는 스윙 컴포넌트의 클래스 파일들이 존재하는 경로명 javax.swing.*를 import 해야 합니다.import javax.swing.*; 대부분의 스윙 응용프로그램은 이벤트 처리, 이미지나 도형을 그리는 부분을 함수적으로 동반하므로, 다음과 같은 import 문이 필요한 경우가 많다.import java.awt.*; // 폰트 등 그래픽 처리를 위한 클래스들의 경로명import java.awt.event.*; // 이벤트 처리에 필요한 기본 클래스들의 경로명import javax.swing...

자바의 GUI

GUI 응용프로그램이란?GUI란 Graphical User Interface의 약자로서 이미지 혹은 그래픽을 이용하여 메뉴 등을 포함하는 화면을 구성하고, 키보드의 마우스 등의 편리한 입력 도구를 이용하여 사용자가 입력하기 편하도록 만들어진 사용자 인터페이스입니다.소프트웨어 개발자들은 프로그래밍 언어를 선택함에 있어 GUI를 작성하기에 편한 정도와 다양한 기능 여부를 중요한 기준으로 삼는다. 자바는 AWT와 Swing 패키지 등 어떤 언어보다 강력한 GUI 라이브러리를 제공하여, 소프트웨어 개발자들이 다양한 GUI를 쉽게 구성하도록 해 줍니다. AWT와 Swing 패키지자바 언어는 GUI 응용프로그램을 쉽게 작성할 수 있도록 다양한 GUI 컴포넌트(GUI Component)를 제공합니다. 자바의 GUI ..