기본 콤포넌트 다루기!
01. main에서 JFrame 생성
package gui;
import javax.swing.JFrame;
public class ex01 {
public static void main(String[] args) {
// 프레임 생성
JFrame jFrame = new JFrame();
// 프레임 타이틀 지정("title")
jFrame.setTitle("Frame Test");
// 프레임의 크기 지정(x,y)
jFrame.setSize(300, 200);
// 프레임의 활성화 지정(true || false)
jFrame.setVisible(true);
}
}

02. 클래스에 JFrame 상속
package gui;
import javax.swing.JFrame;
public class ex02 extends JFrame {
public ex02() {
setTitle("2");
setSize(300, 200);
setVisible(true);
}
public static void main(String[] args) {
ex02 ex02 = new ex02();
}
}

package gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
class MyFrame03 extends JFrame {
public MyFrame03() {
setTitle("3");
setSize(300,200);
setVisible(true);
JPanel jPanel = new JPanel();
JButton button = new JButton("버튼");
JLabel jLabel = new JLabel("문민승");
jPanel.add(jLabel);
jPanel.add(button);
add(jPanel);
}
}
public class ex03 {
public static void main(String[] args) {
MyFrame03 frame03 = new MyFrame03();
}
}

04. 버튼 여러개 만들어 보기!
package gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
class myFrame04 extends JFrame {
public myFrame04() {
setTitle("MyFrame");
setSize(450, 150);
setVisible(true);
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
JButton jButton1 = new JButton("자바 피자에 오신 것을 환영합니다, 피자의 종류를 선택하시오.");
JButton jButton2 = new JButton("콤보피자");
JButton jButton3 = new JButton("포테이토피자");
JButton jButton4 = new JButton("불고기피자");
add(jPanel1);
jPanel1.add(jPanel2);
jPanel1.add(jPanel3);
jPanel2.add(jButton1);
jPanel3.add(jButton2);
jPanel3.add(jButton3);
jPanel3.add(jButton4);
}
}
public class ex04 {
public static void main(String[] args) {
myFrame04 frame04 = new myFrame04();
}
}

05. FlowLayout 사용해보기(pack() 사용)
package gui;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MyFrame05 extends JFrame {
public MyFrame05() {
setTitle("FlowLayout Test");
setVisible(true);
JPanel jPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
// jPanel.setLayout(new FlowLayout());
// FlowLayout f = new FlowLayout();
// jPanel.setLayout(f);
add(jPanel);
jPanel.add(new JButton("Button1"));
jPanel.add(new JButton("Button2"));
jPanel.add(new JButton("Button3"));
jPanel.add(new JButton("B4"));
jPanel.add(new JButton("Long Button15"));
// pack() : 프레임 크기를 추가된 컴포넌트 크기에 맞도록 조절
pack();
}
}
public class ex05 {
public static void main(String[] args) {
MyFrame05 frame05 = new MyFrame05();
}
}

06. BorderLayout 사용해보기!
package gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.*;
class MyFrame06 extends JFrame {
public MyFrame06() {
setTitle("border layout");
// frame은 defulat로 borderLayout이다
// setLayout(new BorderLayout());
// setLayout(new BorderLayout(10, 10));
add("East", new JButton("동"));
add("West", new JButton("서"));
add("South", new JButton("남"));
// add(new JButton("동"), BorderLayout.EAST);
// add(new JButton("서"), BorderLayout.WEST);
// add(new JButton("남"), BorderLayout.SOUTH);
add(new JButton("북"), BorderLayout.NORTH);
add(new JButton("중앙"), BorderLayout.CENTER);
setSize(300, 150);
setVisible(true);
}
}
public class ex06 {
public static void main(String[] args) {
MyFrame06 frame06 = new MyFrame06();
}
}

07. GridLayout 사용해보기!
package gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.*;
class MyFrame07 extends JFrame {
public MyFrame07() {
setLayout(new GridLayout(2, 3));
setTitle("Grid");
setVisible(true);
add(new JButton("button1"));
add(new JButton("button2"));
add(new JButton("button3"));
add(new JButton("button4"));
add(new JButton("button5"));
pack();
}
}
public class ex07 {
public static void main(String[] args) {
MyFrame07 frame07 = new MyFrame07();
}
}

08. Absolute 배치 관리 사용해보기!
package gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MyFrame08 extends JFrame {
private JButton b1;
private JButton b2, b3;
public MyFrame08() {
setTitle("Absolute Position Test");
setVisible(true);
JPanel p = new JPanel();
p.setLayout(null); // 배치 관리 제거
b1 = new JButton("button #1");
b2 = new JButton("button #2");
b3 = new JButton("button #3");
p.add(b1);
p.add(b2);
p.add(b3);
b1.setBounds(20, 5, 95, 30);
b2.setBounds(55, 45, 105, 70);
b3.setBounds(180, 15, 105, 90);
add(p);
setSize(500, 500);
}
}
public class ex08 {
public static void main(String[] args) {
MyFrame08 frame08 = new MyFrame08();
}
}
