import java.awt.*;
import javax.swing.*;
public class GridTest extends JFrame{
public GridTest() {
setTitle("Gui Test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //X 눌렀을 때 닫히도록
Container c = getContentPane();
c.setLayout(new BorderLayout(15,15)); //컴포넌트 사이의 수평 수직 간격이 10,10 픽셀이 되도록 배치 관리자 설정
JPanel pn = new JPanel(); //위쪽의 Label
pn.add(new JLabel("학생 정보 입력"));
c.add(pn, BorderLayout.NORTH);
JPanel pt = new JPanel();
pt.setLayout(new GridLayout(5,4,3,3)); //5행 4열로 과제의 그림과 같은 형태를 위해 좌우 위아래 간격을 3,3으로 준다.
pt.add(new JLabel("이름")); //JLabel로 이름 학번 학과 연락처 추가
pt.add(new JLabel("학번"));
pt.add(new JLabel("학과"));
pt.add(new JLabel("연락처"));
for(int i =0;i<16;i++) {
pt.add(new JTextField(10)); //16개의 JTextField 생성
}
c.add(pt,BorderLayout.CENTER); //Center에
JPanel pb = new JPanel();
pb.add(new JButton("추가")); //JButton 추가 취소 생성
pb.add(new JButton("취소"));
c.add(pb, BorderLayout.SOUTH); //남쪽에
setSize(400,300); // 프레임 크기 400X300 설정
setVisible(true); //프레임을 화면에 출력
}
public static void main(String[] args) {
new GridTest();
}
}
명품자바프로그래밍 chapter9_lab8
실습1| border layout 만들기
import java.awt.*;
import javax.swing.*;
public class BorderLayoutTest extends JFrame{
public BorderLayoutTest() {
setTitle("BorderLayout Practice");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //X 눌렀을 때 닫히도록
Container c = getContentPane();
c.setLayout(new BorderLayout(5,7)); //컴포넌트 사이의 수평 수직 간격이 5,7 픽셀이 되도록 배치 관리자 설정
c.add(new JButton("North"), BorderLayout.NORTH); // 북쪽 버튼
c.add(new JButton("Center"), BorderLayout.CENTER); //중간 버튼
c.add(new JButton("West"), BorderLayout.WEST); //서쪽 버튼
c.add(new JButton("East"), BorderLayout.EAST); //동쪽 버튼
c.add(new JButton("South"), BorderLayout.SOUTH); //남쪽 버튼
setSize(400,200); // 프레임 크기 400X200 설정
setVisible(true); //프레임을 화면에 출력
}
public static void main(String[] args) {
new BorderLayoutTest();
}
}
실습2| gridlayout 만들기
import java.awt.*;
import javax.swing.*;
public class GridLayoutTest extends JFrame{
public GridLayoutTest() {
setTitle("Ten Buttons Frame");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //X 눌렀을 때 닫히도록
Container c = getContentPane();
c.setLayout(new GridLayout(1,10)); // 1X10 그리드로 분할
Color[] color = {Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN, Color.CYAN, Color.BLUE, Color.MAGENTA, Color.GRAY, Color.PINK, Color.LIGHT_GRAY}; //색깔 배열 생성
for(int i =0; i<10; i++) {
String num = Integer.toString(i); //int형이 GridLayout에서 사용할수 없다는 오류메시지가 떠서 String 타입으로 변경해준다.
JButton j = new JButton(num);
j.setBackground(color[i]); //배경색 입혀주기
c.add(j); //GridLayout 배치관리자를 가진 컨테이너에 컴포넌트를 부착한다.
}
setSize(600,200); // 프레임 크기 600X200 설정
setVisible(true); //프레임을 화면에 출력
}
public static void main(String[] args) {
new GridLayoutTest();
}
}
실습3| JLabel 컴포넌트 랜덤
import java.awt.*;
import javax.swing.*;
public class JLabelRandomTest extends JFrame{
public JLabelRandomTest() {
setTitle("Random Labels");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //X 눌렀을 때 닫히도록
Container c = getContentPane();
c.setLayout(null); //배치관리자가 없는 컨테이너
for (int i =0;i<20;i++) {
JLabel label = new JLabel(); //JLabel 컴포넌트
int x = (int)(Math.random()*200) +50;
int y = (int)(Math.random()*200) +50;
label.setLocation(x,y); //(x,y) 좌표의 위치 지정
label.setSize(10,10);
label.setOpaque(true); //JLabel의 경우 Opaque를 true로 해줘야지 배경색이 적용됨
label.setBackground(Color.blue); //배경색은 파랑색으로
c.add(label); ///컨테이너에 JLabel을 부착한다.
}
setSize(300,300); //프레임의 크기는 300X300
setVisible(true); //프레임을 화면에 출력
}
public static void main(String[] args) {
new JLabelRandomTest();
}
}
실습4| guitest 만들기
import java.awt.*;
import javax.swing.*;
public class GuiTest extends JFrame{
public GuiTest() {
setTitle("Gui Test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //X 눌렀을 때 닫히도록
Container c = getContentPane();
c.setLayout(new BorderLayout(10,10)); //컴포넌트 사이의 수평 수직 간격이 10,10 픽셀이 되도록 배치 관리자 설정
JPanel pn = new JPanel(); //애를 통해 위쪽 공백을 맞춰줌
pn.add(new JLabel(""));
c.add(pn, BorderLayout.NORTH);
JPanel pw = new JPanel();
pw.setLayout(new GridLayout(4,1)); // 4행 1열
pw.add(new JLabel("이름")); //JLabel로 이름 학번 전공 연락처 추가
pw.add(new JLabel("학번"));
pw.add(new JLabel("전공"));
pw.add(new JLabel("연락처"));
c.add(pw,BorderLayout.WEST); //서쪽에
JPanel pt = new JPanel();
pt.setLayout(new GridLayout(4,1,0,20)); //4행 1열로 과제의 그림과 같은 형태를 위해 좌우 위아래 간격을 0,20으로 준다.
pt.add(new JTextField(10)); //4개의 JTextField 생성
pt.add(new JTextField(10));
pt.add(new JTextField(10));
pt.add(new JTextField(10));
c.add(pt,BorderLayout.CENTER); //Center에
JPanel pb = new JPanel();
pb.add(new JButton("확인")); //JButton 확인 취소 생성
pb.add(new JButton("취소"));
c.add(pb, BorderLayout.SOUTH); //남쪽에
setSize(350,300); // 프레임 크기 350X300 설정
setVisible(true); //프레임을 화면에 출력
}
public static void main(String[] args) {
new GuiTest();
}
}
실습5 | 배치관리자 혼합 사용 실습
실습6 | 배치관리자 없이 배치하는 실습
import java.awt.*;
import javax.swing.*;
public class StoryTest extends JFrame{
public StoryTest() {
setTitle("SM Story");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //X 눌렀을 때 닫히도록
Container c = getContentPane();
c.setLayout(null); //배치관리자가 없는 컨테이너 (절대 위치 사용)
JLabel j0 = new JLabel("SM Story");
j0.setLocation(20,10); //j0을 (20,10) 위치로 지정
j0.setSize(100,40); //j0을 100X40 크기로 지정
c.add(j0); //j0을 컨텐트팬에 부착
JLabel j1 = new JLabel("가을은");
j1.setLocation(80,60); //j1을 (80,60) 위치로 지정
j1.setSize(100,40); //j1을 100X40 크기로 지정
c.add(j1); //j1을 컨텐트팬에 부착
JPanel j3 = new JPanel();
j3.setLayout(new GridLayout());
j3.setLocation(150,120); //j3을 (150,120) 위치로 지정
j3.setSize(100,30); //j3을 100X3 크기로 지정
j3.add(new JTextField(10)); //JTestFiled 생성
c.add(j3); //j3을 컨텐트팬에 부착
JLabel j4 = new JLabel("이다.");
j4.setLocation(280,160); //j4을 (280,160) 위치로 지정
j4.setSize(100,40); //j4을 100X40 크기로 지정
c.add(j4); //j4을 컨텐트팬에 부착
setSize(500,300); //프레임의 크기는 400X300
setVisible(true); //프레임을 화면에 출력
}
public static void main(String[] args) {
new StoryTest();
}
}
'Programming > JAVA' 카테고리의 다른 글
기본적인 스윙 컴포넌트와 활용 (0) | 2020.12.30 |
---|---|
자바의 이벤트 처리 (0) | 2020.12.30 |
자바 기말 플젝 코드(미완성) (0) | 2020.12.30 |
입출력 스트림과 파일 입출력 (0) | 2020.10.16 |
제너릭과 컬렉션 (0) | 2020.10.16 |
댓글