자바 swing 탭 질문드립니다.

조회수 37회

package a.b.c.swing.exam;

import java.awt.BorderLayout; import java.awt.Label; import java.awt.TextField;

import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable;

public class JTabbedPaneTest2 extends JFrame {

JPanel mb1;
JPanel mb2;
JPanel mb3;

Label lb1;  
Label lb2;
Label lb3;
Label lb4;
Label lb5;
Label lb6;
Label lb7;

Label lbl1; 
Label lbl2;
Label lbl3;

TextField tf1;
TextField tf2;
TextField tf3;
TextField tf4;
TextField tf5;
TextField tf6;
TextField tf7;

TextField tfl1;
TextField tfl2;
TextField tfl3;

private static final long serialVersionUID = 1L;

JTabbedPane jtp; // 탭 생성.

public JTabbedPaneTest2() {
    super("회원 관리 프로그램");

    jtp = new JTabbedPane(JTabbedPane.BOTTOM);

    mb1 = pFx1();
    mb2 = pFx2();
    mb3 = null;



    // 판넬을 텝에 삽입.
    jtp.addTab("입력", mb1);
    jtp.addTab("수정", mb2);
    jtp.addTab("삭제", mb3);

    getContentPane().add(jtp, BorderLayout.CENTER); // 컴포던트를 배치하고, 배치 방식을 결정한다.
    this.setSize(900,900); // 사이즈 결정
    this.setVisible(true); // 화면 표시 여부
}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    new JTabbedPaneTest2();
}   

public JPanel pFx1()
{
    JPanel p1 = new JPanel();

    lb1 = new Label("동물 종류");   
    lb2 = new Label("동물 나이");
    lb3 = new Label("동물 성별");
    lb4 = new Label("보호자 이름");
    lb5 = new Label("보호자 핸드폰");
    lb6 = new Label("보호자 이메일");
    lb7 = new Label("보호자 주소");

    // 판넬에 삽입.
    add(lb1);
    add(lb2);
    add(lb3);
    add(lb4);
    add(lb5);
    add(lb6);
    add(lb7);



    tf1 = new TextField();
    tf2 = new TextField();
    tf3 = new TextField();
    tf4 = new TextField();
    tf5 = new TextField();
    tf6 = new TextField();
    tf7 = new TextField();

    add(tf1);
    add(tf2);
    add(tf3);
    add(tf4);
    add(tf5);
    add(tf6);
    add(tf7);



    lb1.setBounds(40, 10, 80, 40);
    lb2.setBounds(40, 50, 80, 40);
    lb3.setBounds(40, 90, 80, 40);
    lb4.setBounds(40, 130, 80, 40);
    lb5.setBounds(40, 170, 80, 40);
    lb6.setBounds(40, 210, 80, 40);
    lb7.setBounds(40, 250, 80, 40);

    tf1.setBounds(160, 10, 200, 30);
    tf2.setBounds(160, 50, 200, 30);
    tf3.setBounds(160, 90, 200, 30);
    tf4.setBounds(160, 130, 200, 30);
    tf5.setBounds(160, 170, 200, 30);
    tf6.setBounds(160, 210, 200, 30);
    tf7.setBounds(160, 250, 200, 30);

    return p1;
}

public JPanel pFx2()
{
    JPanel p2 = new JPanel();

    lbl1 = new Label("회원번호");
    lbl2 = new Label("보호자 핸드폰");
    lbl3 = new Label("보호자 주소");

    // 판넬에 삽입.
    add(lbl1);
    add(lbl2);
    add(lbl3);



    tfl1 = new TextField();
    tfl2 = new TextField();
    tfl3 = new TextField();

    add(tfl1);
    add(tfl2);
    add(tfl3);



    lbl1.setBounds(40, 10, 80, 40);
    lbl2.setBounds(40, 50, 80, 40);
    lbl3.setBounds(40, 90, 80, 40);

    tfl1.setBounds(160, 10, 200, 30);
    tfl2.setBounds(160, 50, 200, 30);
    tfl3.setBounds(160, 90, 200, 30);

    return p2;
}

}

저는 각 탭마다 등록, 수정, 삭제 등의 기능을 넣고, 다른 화면을 사용 할 수 있게 하고싶습니다. 하지만 위의 코드를 막상 실행시켜보면 어째선지 모든 탭이 첫번째 등록한 판넬과 같은 내용이 돼 버립니다.

  • pFx1 은 잘 나오는 상황인가요? 현제리 2020.11.23 11:47

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.