package _swing;
import javax.swing.*;
import java.awt.*;
public class MyPanelEx1 extends JFrame {
private JButton button1;
private JButton button2;
private JButton button3;
private JButton button4;
private JButton button5;
private JButton button6;
// 컴포넌트들을 그룹화 시킬 수 있다.
// 즉, 각각의 배치관리자를 추가로 설정해서 관리할 수도 있다.
private JPanel panel1;
private JPanel panel2;
public MyPanelEx1() {
initData();
setInitLayout();
}
public void initData() {
setTitle("패널연습해보기");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
panel1 = new JPanel();
panel2 = new JPanel();
button1 = new JButton("button1");
button2 = new JButton("button2");
button3 = new JButton("button3");
button4 = new JButton("button4");
}
public void setInitLayout() {
setLayout(new GridLayout(2, 1));
// R G B
// 0 0 0 --> 흰색
// 255 255 255 --> 검은색
panel1.setBackground(Color.RED);
add(panel1);
panel2.setBackground(Color.BLACK);
add(panel2);
// 패널1에 버튼1을 붙여보자
// 패널1에 아직 배치 관리자를 설정하지 않았다. (기본 배치관리자가 세팅이 된다.)
panel1.setLayout(new FlowLayout(FlowLayout.LEFT, 30, 30));
panel1.add(button1);
panel1.add(button2);
panel2.setLayout(new FlowLayout(FlowLayout.RIGHT, 30, 30));
panel2.add(button3);
panel2.add(button4);
}
// 테스트 코드 작성
public static void main(String[] args) {
new MyPanelEx1();
} // end of main
}

좌표기반으로 그림 그려보기
package test;
import javax.swing.*;
import java.awt.*;
public class MyPaintFrame extends JFrame {
private MyPanel myPanel;
public MyPaintFrame() {
initData();
setInitData();
}
private void initData() {
setTitle("HOME");
setSize(800, 800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
myPanel = new MyPanel();
}
private void setInitData() {
add(myPanel);
}
static class MyPanel extends JPanel {
@Override
public void paint(Graphics g) {
super.paint(g);
// 집
g.drawRect(200, 200, 200, 200);
// 지붕
g.drawLine(300, 100, 200, 200);
g.drawLine(300, 100, 400, 200);
// 창문
g.drawRect(230, 250, 50, 50);
g.drawLine(255, 250, 255, 300);
g.drawLine(230, 275, 280, 275);
// 문
g.drawRect(300, 300, 70, 100);
g.drawRoundRect(310, 350, 10, 10, 30, 30);
// 별
g.drawString("★ ★", 100, 100);
g.drawString("★ ★", 140, 80);
g.drawString("★ ★ ★ ★ ★", 490, 260);
// 땅
g.drawLine(0, 400, 800, 400);
// 눈사람
g.drawRoundRect(500, 335, 65, 65, 65, 65);
g.drawRoundRect(510, 285, 50, 50, 50, 50);
g.drawString("^ _ ^", 520, 315);
g.drawLine(480, 335, 505, 350);
g.drawLine(560, 350, 585, 335);
}
} // ene of static inner class
public static void main(String[] args) {
new MyPaintFrame();
}
}

'Swing' 카테고리의 다른 글
| 이미지 겹쳐보기 (0) | 2025.04.29 |
|---|---|
| 이미지 올려보기 (1) | 2025.04.28 |
| 좌표값으로 컴포넌트 배치해보기 (0) | 2025.04.28 |
| 기본 컴포넌트 소개 (0) | 2025.04.28 |
| BorderLayout 과 배열의 활용 (0) | 2025.04.28 |