성장 일기/쌍용교육센터 / / 2023. 1. 2. 10:10

0102/Swing Component

쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.

복합레이아웃은 여러 개의 LayoutManager 사용하는 것이다.

 

수동배치 관리자는 개발자가 컴포넌트의 배치 위치

크기를 설정하여 배치한다. 배치 관리자를 사용하지 않고

자동배치 관리자로 할 수 없는 복잡하고 세밀한 배치를 할 수 있다.

 

사용법

//1. 배치관리자 해제
setLayout(null); //null값을 넣어 기본 값이 없게 한다.

//2. 컴포넌트의 크기를 설정
setSize(w, h);

//3. 컴포넌트의 배치 위치 설정
setLocation(x, y);

//컴포넌트의 크기를 설정, 컴포넌트의 배치 위치 설정를 한 번에 설정
setBounds(x, y, w, h); //크기와 배치 위치를 같이 설정하려면 Bounds로 설정한다.

//4. 배치
add(컴포넌트);

 

JFrame의 setSizeSetLocation

JFrame을 모니터의 좌상단(모니터 안)에서 움직여야 하기 때문에

Override를 하여 제공한다.

setLocation(x,y); // 모니터의 좌상단에서 시작
setSize(w,h);

 

JButton의 setSizeSetLocation

JButton안 쪽(프레임 안)의 좌상단에서 움직여야 하기 때문에

Component에서 제공하는 메서드를 사용하여 제공한다.

JButton jbtn = new JButton("버튼");

jbtn.setLocation(x,y); //프레임 좌 상단에서 시작
jbtn.setSize(w,h); //크기 설정

add(jbtn); //윈도우 컴포넌트에 배치

 

컴포넌트에 이미지 적용은 awt는 안 되고 Swing은 간단하게 가능하다.

Swing은 ImageIcon을 사용하면 컴포넌트의 이미지를 넣을 수 있다.

사용법은 아래와 같다.

//1. 이미지 아이콘 생성
ImageIcon ii = new ImageIcon("이미지의 절대경로");

//2. 컴포넌트와  has a 설정
Jbutton jbtn = new Jbutton(ii);

 

JScrollPane는 스크롤 바를 제공하는 Contain Component이다.

스크롤 바가 필요한 컴포넌트를 입력 받아 스크롤 바를 제공하는 컴포넌트(has a 관계)이다.

사용법은 아래와 같다.

//0. 스크롤바가 필요한 컴포넌트 생성
JTextArea jta = new JTextArea();

//1. 생성 (스크롤 바가 필요한 컴포넌트를 넣어 JScrollPane을 생성)
JScrollPane jsp = new JScrollPane(jta);

//2. 컴포넌트를 가진 JScrollPane 배치
add(jsp);

 

ButtonGroup

여러 개의 라디오 버튼을 하나로 묶어서 동작 시켜야 할 때 사용된다.

사용자에게 보이지 않는 Non-Visual Component이다.

사용법은 아래와 같다.

// 0. 버튼 그룹에 묶여질 컴포넌트 생성
JRadioButton jrb=new JRadioButton(“버튼”);

//1. ButtonGroup생성
ButtonGroup bg=new ButtonGroup();

//2. 생성된 ButtonGroup에 묶여질 컴포넌트 추가
bg.add(jrb);

 

JTextField는 한 줄로 입력을 받을 때 주로 사용되고
JPasswordField 비밀번호를 입력 받을 때 주로 사용된다.

Border클래스
javax.swing.border 패키지에서 관련 클래스를 제공하고

모든 Swing 컴포넌트는 border를 가질 수 있다.

사용법은 아래와 같다.

//1. Border class 생성
 TitledBorder tb = new TitleBorder("제목");

//2. 컴포넌트에 적용
jbtn.setBorder(tb);
jp.setBorder(tb);

 

Menu는 프로그램에서 고정적인 위치에 존재하며

프로그램의 전반적인 기능을 제공하는 버튼이다.

MenuBar, Menu, MenuItem으로 구성된다.

 

MenuBar는 눈에 보이지 않으며 Menu를 올려놓을 때 사용한다.

Menu는 MenuItem을 묶어서 저장하기 위한 버튼이고

MenuItem은 사용자에게 제공할 기능이다.

메뉴에 구분선을 추가하고 싶으면 addSeparator()를 사용한다.

사용법은 아래와 같다.

//1. MenuBar 생성
JMenuBar jmb = new JMenuBar();

//2. Menu 생성
JMenu jm = new JMenu("메뉴에 들어갈 문자열");

//3. MenuItem 생성
JMenuItem jmi = new JMenuItem("메뉴 아이템에 들어갈 문자열");

//4. JMenu에 JMenuItem을 배치
jm.add(Jmi);
jm.addSeparator(); //위의 메뉴 다음에 줄이 생긴다. 생성 될 때마다 사용해야 한다.

//5. JMenuBar에 JMenu를 배치
jmb.add(jm);

//6. jMenuBar를 Frame에 배치
setMenuBar(jmb);

 

배우고 느낀점

Swing의 여러 컴포넌트들을 생성하고 실행해보면서 클래스들의 상속 관계나

메서드 오버라이딩 등 API문서로 여러 관계에 대해 알아봤다. 

아직 문서나 여러 관계에 대해 더 알아가야 하는데 이러한 경험으로 좋은 도움이 되었다고 생각한다.

 

 

'성장 일기 > 쌍용교육센터' 카테고리의 다른 글

0104/Swing Component  (0) 2023.01.04
0103/Swing Component  (0) 2023.01.03
1229/AWT, Swing  (0) 2022.12.29
1228/Set, Map  (0) 2022.12.28
1227/Calendar, JCF  (0) 2022.12.27
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유