simDev1234
심플하고 차분하게
simDev1234
전체 방문자
오늘
어제
  • 분류 전체보기
    • Computer Science
      • Basic Math
      • Data Structure
      • Algorithm
      • Database
      • OS
    • Language
      • Java
      • Kotlin
      • SQL
    • Framework
      • Spring
      • Orm&Mapper
      • 프로젝트로 스프링 이해하기
      • 스프링 라이브러리
    • Infra
      • Cloud
      • Docker
      • Redis
      • AWS, Azure
      • Device
    • Etc
      • CleanCoding
    • Git,Github

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 참조변수
  • 자바프로그래밍
  • 스프링
  • 자바프로그램
  • 404
  • 참조타입
  • 컨트롤러
  • null
  • controllerTest
  • 자바
  • JVM메모리구조
  • scanner #next() #nextLine()
  • 자바메모리구조

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
simDev1234
Language/Java

[자바API_AWT/Swing] GUI (Graphic User Interface)의 기초

[자바API_AWT/Swing] GUI (Graphic User Interface)의 기초
Language/Java

[자바API_AWT/Swing] GUI (Graphic User Interface)의 기초

2022. 3. 26. 00:46

1. GUI란?

- GUI는 사용자가 컴퓨터와 눈에 보이는(Graphic) 상호작용(interface)을 할 수 있게 한 것
- GUI의 종류 : AWT패키지, Swing패키지

AWT(Abstract Windowing Toolkit)
- AWT은 중량 컴포넌트(heavy weight)이며, 운영체제의 자원을 사용한다. 운영체제에 부담되나 속도 빠르다.

Swing
- Swing은 AWT를 확장한 경량 컴포넌트(Light weight)이며, 다양한 플랫폼에도 사용할 수 있게 했다.

 

2. GUI의 전체 구조도

- 이미지 참조 링크 : https://myeonguni.tistory.com/1006

참조 : 명우니 닷컴

 

3. 컴포넌트란?

- 윈도우창에 들어가는 모든 독립적인 단위모듈을 컴포넌트라고 한다.
- 이 중에서 다른 컴포넌트를 하나로 묶어주는 컴포넌트를 컨테이너라 한다.
- 컨테이너 컴포넌트의 조상은 AWT패키지의 Cotainer이다.
- 컨테이너 외의 컴포넌트들의 조상은 Swing패키지 내에서 JComponent이다.

3-1) Container와 JComponent의 주요 메소드

(AWT) Container

관련 메소드
컴포넌트 getter
컴포넌트 추가
getComponent() : Component
add(Component comp) : Component
add(String name, Component comp) : Component
add(Component comp, int index) : Component
add(Component comp, Object constraints) : void
add(Component comp, Object constraints, int index) : void
컴포넌트 제거 remove(int index) : void
remove(Component comp) : void
removeAll() : void
레이아웃(배치방식) 설정 setLayout(LayoutManager mgr) : void

 

(Swing) JComponent

- 참조 : https://m.blog.naver.com/rain483/220735906752

관련 메소드 설명
모양 void setForeground(Color)
void setBackground(Color)
void setOpaque(boolean)
void setFont(Font)
Font getFont()
전경색 설정
배경색 설정
불투명성 설정
폰트 설정
폰트 리턴
위치와 크기 int getWidth()
int getHeight()
int getX()
int getY()
Point getLocationOnScreen
void setLocation(int, int)
void setSize
폭 리턴
높이 리턴
x좌표 리턴
y좌표 리턴
스크린 좌표상에서의 컴포넌트 좌표
위치 지정
크기 지정
상태 void setEnable(boolean)
void setVisible(boolean)
boolean isVisible()
컴포넌트 활성화/비활성화
컴포넌트 보이기/숨기기
컴포넌트의 보이는 상태 리턴
컨테이너 Container getParent()
Contaienr getTopLevelAncestor()
부모 컨테이너 리턴
최상위 부모 컨테이너 리턴

 

3-2) Swing 컨테이너

- 컨테이너는 가벼운 컴포넌트들을 하나로 묶기 위해 사용된다.

종류 이름 내용 default 배치방식
최상위
컨테이너
JFrame 윈도우창 BoderLayout
JApplet 브라우저 내에서 작동하는 윈도우창 BoderLayout
JDiaglog 일종의 메세지창/
알럿과 같은 대화상자 형식의 애플리케이션에 적합
BoderLayout
JWindow (생략) (생략)
일반 JPanel 컴포넌트를 패널형식으로 묶음 FlowLayout

 

3-3) 가장 많이 사용되는 13가지 컴포넌트

- 코드 설명 번역 ) 가장 많이 사용하는 13가지 컴포넌트 https://www.educba.com/swing-components-in-java/

이름 그림/설명 코드
ImageIcon (생략) ImageIcon homeIcon = new ImageIcon(“src/images/home.jpg”);
JButton

<생성자의 인자>
- 문자열 또는 이미지
- 이미지+문자열도 가능
JButton okBtn = new JButton(“Ok”);

JButton homeBtn = new JButton(homeIcon);

JButton btn2 = new JButton(homeIcon, “Home”);
JLabel checkbox, button등에 붙는 라벨
*독자적으로 사용 가능
JLabel textLbl = new JLabel(“This is a text label.”);

JLabel imgLabel = new JLabel(homeIcon);
JComboBox

<생성자의 인자>
- 문자열 배열
String[] cityStrings = { "Mumbai", "London", "New York", "Sydney", "Tokyo" };
JComboBox cities = new JComboBox(cityList);
cities.setSelectedIndex(3);
JCheckBox

<생성자의 인자>
- 옆에 붙는 라벨 문자열
- default체크값(on= true)
CheckBox chkBox = new JCheckBox(“Show Help”, true);
JRadioButton


<생성자의 인자>
- 옆에 붙는 라벨 문자열
- default체크값(on= true)
*ButtonGroup으로 집합가능
ButtonGroup radioGroup = new ButtonGroup();
JRadioButton rb1 = new JRadioButton(“쉬움”, true);
JRadioButton rb2 = new JRadioButton(“중간”);
JRadioButton rb3 = new JRadioButton(“어려움”);
radioGroup.add(rb1);
radioGroup.add(rb2);
radioGroup.add(rb3);
JTextField

<생성자의 인자>
- 컴포넌트 설명하는 문자열
- 너비(=열의 갯수)
*글자수 제한 없음
JTextField txtBox = new JTextField(20);
JTextArea

<생성자의 인자>
- 컴포넌트 설명하는 문자열
- 높이(행 갯수), 너비(열 갯수)
JTextArea txtArea = new JTextArea(“This text is default text for text area.”, 5, 20);
JPasswordField
(extends JTextField)
JPasswordField pwdField = new JPasswordField(15);
var pwdValue = pwdField.getPassword();
JList
DefaultListItem cityList = new DefaultListItem();
cityList.addElement(“Mumbai”):
cityList.addElement(“London”):
cityList.addElement(“New York”):
cityList.addElement(“Sydney”):
cityList.addElement(“Tokyo”):
JList cities = new JList(cityList);
cities.setSelectionModel(ListSelectionModel.SINGLE_SELECTION);
JFileChooser
JFileChooser fileChooser = new JFileChooser();
JButton fileDialogBtn = new JButton(“Select File”);
fileDialogBtn.AddEventListner(new ActionListner(){
fileChooser.showOpenDialog();
})
var selectedFile = fileChooser.getSelectedFile();
JTabbedPane
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab(“Tab 1”, new JPanel());
tabbedPane.addTab(“Tab 2”, new JPanel());
JSlider
JSlider volumeSlider = new JSlider(0, 100, 50);
var volumeLevel = volumeSlider.getValue();

 

3-3) 그외

이름 그림
JProgressBar
JToolTip
JMenu

 




[참고]
- awt와 swing의 차이 - https://diaryofgreen.tistory.com/140
- 컴포넌트란? - https://mommoo.tistory.com/55
- 명우니닷컴 https://myeonguni.tistory.com/1006
- 가장 많이 사용하는 13가지 컴포넌트 https://www.educba.com/swing-components-in-java/
- JComboBox 콤보박스 - https://movefast.tistory.com/63
- JList https://lunaticlobelia.tistory.com/118
- JProgrssBar https://www.javatpoint.com/java-jprogressbar
- JToolTip https://log.hanjava.net/post/2466129264/jtooltip-%EC%9D%B4%EC%95%BC%EA%B8%B0-i
- JMenu https://www.javatpoint.com/java-jmenuitem-and-jmenu
- JDiaglog in java https://www.educba.com/jdialog-in-java/
- JFileChooser https://creatordev.tistory.com/51
- GUI개요 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sks6624&logNo=150164573882
- 알통몬의 인생 https://m.blog.naver.com/rain483/220735906752

'Language > Java' 카테고리의 다른 글

[자바API_AWT/Swing] 배치관리자와 레이아웃 종류  (0) 2022.03.26
[자바API_AWT/Swing] JFrame 컨테이너로 윈도우창 만들기  (0) 2022.03.26
[자바_복습] 이클립스에서 템플릿 만들기  (0) 2022.03.24
[자바_문법] Wrapper 클래스 이해  (0) 2022.03.23
[자바_예제] 2차원 배열 예제_여러 방향으로 뒤집기  (0) 2022.03.22
  • 1. GUI란?
  • 2. GUI의 전체 구조도
  • 3. 컴포넌트란?
  • 3-1) Container와 JComponent의 주요 메소드
  • (AWT) Container
  •  
  • (Swing) JComponent
  •  
  • 3-2) Swing 컨테이너
  • 3-3) 가장 많이 사용되는 13가지 컴포넌트
  •  
  • 3-3) 그외
  •  
'Language/Java' 카테고리의 다른 글
  • [자바API_AWT/Swing] 배치관리자와 레이아웃 종류
  • [자바API_AWT/Swing] JFrame 컨테이너로 윈도우창 만들기
  • [자바_복습] 이클립스에서 템플릿 만들기
  • [자바_문법] Wrapper 클래스 이해
simDev1234
simDev1234
TIL용 블로그. * 저작권 이슈가 있는 부분이 있다면 댓글 부탁드립니다.

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.