본문 바로가기

[JAVA][SWING]JPanel ( 2개의 패널 전환 )

반응형

 

 

 

2개의 Panel 이 서로 변환되는 소스

 

출처 : 자바 스윙(swing) - JPanel ( 2개의 패널 전환 )

 

더보기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
 
@SuppressWarnings("serial")
class JPanel01 extends JPanel { // 1번째 패널
 
    private JButton jButton1;
    private JScrollPane jScrollPane1;
    private JTextArea jTextArea1;
    private JPanelTest win;
 
    public JPanel01(JPanelTest win) {
        this.win = win;
        setLayout(null);
 
        jButton1 = new JButton("버튼");
        jButton1.setSize(7020);
        jButton1.setLocation(1010);
        add(jButton1);
 
        jTextArea1 = new JTextArea();
 
        jScrollPane1 = new JScrollPane(jTextArea1);
        jScrollPane1.setSize(200150);
        jScrollPane1.setLocation(1040);
        add(jScrollPane1);
 
        jButton1.addActionListener(new MyActionListener());
    }
 
    class MyActionListener implements ActionListener { // 버튼 키 눌리면 패널 2번 호출
        @Override
        public void actionPerformed(ActionEvent e) {
            win.change("panel02");
        }
    }
}
 
@SuppressWarnings("serial")
class JPanel02 extends JPanel { // 2번째 패널
    private JTextField textField;
    private JPasswordField passwordField;
    private JPanelTest win;
 
    public JPanel02(JPanelTest win) {
        setLayout(null);
        this.win = win;
        JLabel lblLbl = new JLabel("아이디:");
        lblLbl.setBounds(31406715);
        add(lblLbl);
 
        textField = new JTextField();
        textField.setBounds(1234011621);
        add(textField);
        textField.setColumns(10);
 
        JLabel lblLbl_1 = new JLabel("암호:");
        lblLbl_1.setBounds(31846715);
        add(lblLbl_1);
 
        passwordField = new JPasswordField();
        passwordField.setBounds(1238411621);
        add(passwordField);
 
        JButton btn = new JButton("버튼");
        btn.setSize(7020);
        btn.setLocation(1010);
        add(btn);
        btn.addActionListener(new MyActionListener());
    }
 
    class MyActionListener implements ActionListener { // 버튼 키 눌리면 패널 1번 호출
        @Override
        public void actionPerformed(ActionEvent e) {
            win.change("panel01");
        }
    }
}
 
 
@SuppressWarnings("serial")
class JPanelTest extends JFrame {
 
    public JPanel01 jpanel01 = null;
    public JPanel02 jpanel02 = null;
 
    public void change(String panelName) { // 패널 1번과 2번 변경 후 재설정
 
        if (panelName.equals("panel01")) {
            getContentPane().removeAll();
            getContentPane().add(jpanel01);
            revalidate();
            repaint();
        } else {
            getContentPane().removeAll();
            getContentPane().add(jpanel02);
            revalidate();
            repaint();
        }
    }
 
}
 
public class PanelChangeExample {
    public static void main(String[] args) {
 
        JPanelTest win = new JPanelTest();
 
        win.setTitle("frame test");
        win.jpanel01 = new JPanel01(win);
        win.jpanel02 = new JPanel02(win);
 
        win.add(win.jpanel01);
        win.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        win.setSize(300300);
        win.setVisible(true);
    }
}
 
 
cs

 

 

반응형