我正在练习使用登录管理员,学生和老师插入数据。但我在退出时得到了堆栈。
public class Test5 extends JFrame implements ActionListener , ItemListener {
public Container contentPane = this.getContentPane();
public Test5(){
CardLayout card = new CardLayout();
setLayout(card);
setSize(1366,768);
setTitle("Student Data Editor");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(true);
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/kampus", "root", "abc");
stmt = conn.createStatement();
}catch(Exception e){
}
dosen dos = new dosen();
siswa sis = new siswa();
contentPane.add("main", main);
contentPane.add("student", sis.panel_siswa);
contentPane.add("dosen", dos.panel_dosen);
main = new JPanel(); //first Panel
main.setLayout(new GridBagLayout());
label_main = new JLabel("ID");
label_main2 = new JLabel("Password");
tf_main = new JTextField(15);
tf_main2 = new JPasswordField(15);
login = new JButton("LOGIN");
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("LOGIN")){
card.show(contentPane, "dosen");
}
}
}
public class dosen implements ActionListener{
JPanel panel_dosen;
public dosen(){
panel_dosen = new JPanel(); //second panel
panel_dosen.setLayout(new BorderLayout());
panel_dosen.add(panel_combo, BorderLayout.NORTH);
panel_dosen.add(scroll, BorderLayout.CENTER);
panel_dosen.add(panel_input, BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("Logout")){ //it didnt work at all and dont have any error
Test5 tes = new Test5();
tes.add(tes.main);
tes.remove(panel_dosen);
tes.tf_main.setText("");
tes.tf_main2.setText("");
}
}
}
如何删除第二个面板并添加第一个面板添加jframe?
答案 0 :(得分:1)
如何删除第二个面板并添加第一个面板添加jframe?
使用CardLayout
。 CardLayout
专门设计用于允许在同一空间中交换面板。
阅读How to Use CardLayout上Swing教程中的部分,了解更多信息和工作示例。
答案 1 :(得分:1)
这是CardLayout的用例。使CardLayout成为JFrame的布局管理器而不是BorderLayout