2013년 7월 4일 목요일

(130703) 8일차 JoinForm.java (8일차 수업 문제 - Swing을 이용한 회원가입 폼 만들기)

 - 문제




















 - 소스
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.*;

public class JoinForm extends JFrame {

JLabel label [] = new JLabel [11]; // Label 배열로 선언
JTextField textfield[] = new JTextField [5]; // TextField 배열로 선언
JTextArea textarea = new JTextArea(); // TextArea 선언
JScrollPane sp; // TextArea의 스크롤바를 위한 ScrollPane 선언

JRadioButton male, female; // RadioButton 선언
JCheckBox travel, sleep; // CheckBos 선언
ButtonGroup bg; // RadioButton의 그룹핑을 위한 ButtonGroup 선언
JButton trans, cancel; // Button 선언
JComboBox<String> jcb; // ComboBox 선언
String phone [] = {"010", "011", "016", "017", "018", "019", "070"}; // ComboBox를 위한 배열 선언

JPanel panel1, panel2, panel3, panel4, panel5, panel6;
JPanel panel11, panel12, panel21, panel22, panel31, panel32, panel41, panel42;

public JoinForm() {

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

GridLayout frameLayout = new GridLayout(6, 1); // 전체적인 큰 틀을 GridLayout으로 설정
frameLayout.setVgap(3); // GridLayout간의 간격 설정
this.setLayout(frameLayout); // 설정한 Layout을 set

label[0] = new JLabel("아이디"); 
label[1] = new JLabel("비밀번호");
label[2] = new JLabel("이름");
label[3] = new JLabel("성별");
label[4] = new JLabel("취미");
label[5] = new JLabel("H.P");
label[6] = new JLabel("자기소개");
label[7] = new JLabel("*8자이내");
label[8] = new JLabel("*필수입력");
label[9] = new JLabel("-");
label[10] = new JLabel("-");

textfield[0] = new JTextField(8); // 아이디
textfield[1] = new JTextField(8); // 비밀번호
textfield[2] = new JTextField(8); // 이름
textfield[3] = new JTextField(3); // H.P
textfield[4] = new JTextField(3); // H.P
textarea = new JTextArea(1, 1); // 자기소개

male = new JRadioButton("남성");
female = new JRadioButton("여성");

bg = new ButtonGroup();
bg.add(male);
bg.add(female);

travel = new JCheckBox("여행");
sleep = new JCheckBox("잠자기");

jcb = new JComboBox<String>(phone);

trans = new JButton("전송");
cancel = new JButton("취소");

panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel4 = new JPanel();
panel5 = new JPanel();
panel6 = new JPanel();

panel11 = new JPanel();
panel12 = new JPanel();
panel21 = new JPanel();
panel22 = new JPanel();
panel31 = new JPanel();
panel32 = new JPanel();
panel41 = new JPanel();
panel42 = new JPanel();

BorderLayout layout1 = new BorderLayout();
BorderLayout layout2 = new BorderLayout();
BorderLayout layout3 = new BorderLayout();
BorderLayout layout4 = new BorderLayout();
BorderLayout layout5 = new BorderLayout();
panel1.setLayout(layout1);
panel2.setLayout(layout2);
panel3.setLayout(layout3);
panel4.setLayout(layout4);
panel5.setLayout(layout5);

panel11.add(label[0]); // 이름
panel11.add(textfield[0]); // 이름
panel12.add(label[7]); // *8자이내
panel1.add("West", panel11); // BorderLayout의 왼쪽
panel1.add("East", panel12); // BorderLayout의 오른쪽

panel21.add(label[1]); // 비밀번호
panel21.add(textfield[1]); // 비밀번호
panel22.add(label[2]); // 성명
panel22.add(textfield[2]); // 성명
panel2.add("West", panel21); // BorderLayout의 왼쪽
panel2.add("East", panel22); // BorderLayout의 오른쪽

panel31.add(label[3]); // 성별
panel31.add(male); // 성별 남성
panel31.add(female); // 성별 여성
panel32.add(label[4]); // 취미
panel32.add(travel); // 취미 여행
panel32.add(sleep); // 취미 잠자기
panel3.add("West", panel31); // BorderLayout의 왼쪽
panel3.add("East", panel32); // BorderLayout의 오른쪽

panel41.add(label[5]); // H.P
panel41.add(jcb); // ComboBox
panel41.add(label[9]); // -
panel41.add(textfield[3]); // H.P
panel41.add(label[10]); // -
panel41.add(textfield[4]); // H.P
panel42.add(label[8]); // *필수입력
panel4.add("West", panel41); // BorderLayout의 왼쪽
panel4.add("East", panel42); // BorderLayout의 오른쪽

panel5.add("West", label[6]); // 자기소개
sp = new JScrollPane(textarea); // TextArea에 ScrollPane을 적용
sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
panel5.add(sp); // TextArea에 적용된 ScrollPane을 붙임

panel6.add(trans); // 전송
panel6.add(cancel); // 취소

this.add(panel1);
this.add(panel2);
this.add(panel3);
this.add(panel4);
this.add(panel5);
this.add(panel6);

setTitle("회원가입 폼!!");
setSize(400, 350);
setVisible(true);
}

public static void main(String[] args) {
new JoinForm();
}
}


 - 결과