728x90
반응형
[Java] 50. 스윙 컴포넌트로 버튼 만들기
1. 모니터에 창 띄우기
2. 화면의 사방에 버튼 띄우기
1. 모니터에 창 띄우기
(1) 배치 관리자(Layout Manager): 컨테이너 안의 각 컴포넌트의 위치와 크기를 정해주는 작업.
-setTitle(String): 타이틀 바의 제목을 출력한다.
-setSize(int,int): 프레임의 크기를 결정한다.(가로,세로)
-setVisible: 프레임을 화면에 나타나게 한다.(=디폴트는 숨겨진 상태이다.)
-setDefaultCloseOperation: 윈도우창 종료시 프로세스 창도 함께 닫게 한다/
-awt (Abstract Window Toolkit) : 윈도우 GUI 프로그래밍을 돕는 도구.
-FlowLayout: 해당 문화권(오->왼/왼->오)의 방식으로 배치한다.
-JButton 컴포넌트: 이름이 있는 버튼을 삽입시키는 컴포넌트.
package ch01;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
// Swing-> 배치 관리자: FlowLayout
// 컴포넌트들을 (버튼, 라벨) 수평, 수직으로 배치해주는 클래스이다.
public class FlowLayoutEx extends JFrame {
private JButton button1; // 참조 타입
private JButton button2;
private JButton button3; // 참조 타입
private JButton button4;
private JButton button5; // 참조 타입
private JButton button6;
// 생성자
public FlowLayoutEx() {
super.setTitle("FlowLayout 연습");
super.setSize(500, 500);
super.setVisible(true);
super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 생성자에서 메서드 호출이 가능하다.
initData();
setInitLayout();
}
// 멤버 변수를 초기화하는 기능 (값 넣기)
public void initData() {
button1 = new JButton("버튼 1");
button2 = new JButton("버튼 2");
button3 = new JButton("버튼 3");
button4 = new JButton("버튼 4");
button5 = new JButton("버튼 5");
button6 = new JButton("버튼 6");
}
// 컴포넌트들을 배치하는 기능
public void setInitLayout() {
// 배치 관리자 --> BorderLayout 이라는 배치관리자가 기본으로 활용된다.
FlowLayout flowLayout = new FlowLayout(FlowLayout.LEADING,50,50);
super.setLayout(flowLayout);
// 컴포넌트들을 붙이다.
super.add(button1);
super.add(button2);
super.add(button3);
super.add(button4);
super.add(button5);
super.add(button6);
}
// 코드 테스트
public static void main(String[] args) {
// FlowLayoutEX f1 = new FlowLayoutEx(); <-- 부를 수 있는 이름이 있는 클래스
new FlowLayoutEx(); // <--익명 클래스(변수명 x)
// 다시 접근해서 사용할 일이 없으면 new라고 선언만 해도 Okay
}
}
2. 화면의 사방에 버튼 띄우기
-BorderLayout.방향: JFrame의 기본 레이아웃으로, 입력한 방향에 해당 컴포넌트를 출력시킨다. (상/하/좌/우/중앙)
package ch01;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class BorderLayoutEx1 extends JFrame {
public BorderLayoutEx1() {
initData();
setInitLayout();
}
public void initData() {
setTitle("borderLayout 연습");
setSize(600,600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void setInitLayout() {
// 배치 관리자 선정(컨테이너)
// borderLayout은 컴포넌트들을 동서남북가운데로 정렬/배치시켜주는 레이아웃이다.
setLayout(new BorderLayout());
add(new JButton("동"), BorderLayout.EAST); // EAST=상수
add(new JButton("서"), BorderLayout.WEST);
add(new JButton("남"), BorderLayout.SOUTH);
add(new JButton("북"), BorderLayout.NORTH);
add(new JButton("중앙"), BorderLayout.CENTER);
}
public static void main(String[] args) {
new BorderLayoutEx1();
} // end of main
} // end of class
728x90
반응형
'Java > 자바 Swing' 카테고리의 다른 글
[Java] 59. 사용자 정의 예외 클래스 (0) | 2024.04.29 |
---|---|
[Java] 56. Swing 응용 예제: 집 그리기 (0) | 2024.04.26 |
[Java] 55. Swing: 패널과 컨테이너 (0) | 2024.04.26 |
[Java] 51. 스윙 컴포넌트, 반복문 활용: 동서남북에 버튼 만들기 (0) | 2024.04.25 |
[Java] 49. 자바 GUI와 Swing 컴포넌트 (0) | 2024.04.25 |