쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
복합레이아웃은 여러 개의 LayoutManager 사용하는 것이다.
수동배치 관리자는 개발자가 컴포넌트의 배치 위치
크기를 설정하여 배치한다. 배치 관리자를 사용하지 않고
자동배치 관리자로 할 수 없는 복잡하고 세밀한 배치를 할 수 있다.
사용법
//1. 배치관리자 해제
setLayout(null); //null값을 넣어 기본 값이 없게 한다.
//2. 컴포넌트의 크기를 설정
setSize(w, h);
//3. 컴포넌트의 배치 위치 설정
setLocation(x, y);
//컴포넌트의 크기를 설정, 컴포넌트의 배치 위치 설정를 한 번에 설정
setBounds(x, y, w, h); //크기와 배치 위치를 같이 설정하려면 Bounds로 설정한다.
//4. 배치
add(컴포넌트);
JFrame의 setSize와 SetLocation은
JFrame을 모니터의 좌상단(모니터 안)에서 움직여야 하기 때문에
Override를 하여 제공한다.
setLocation(x,y); // 모니터의 좌상단에서 시작
setSize(w,h);
JButton의 setSize와 SetLocation은
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 |