我正在用登录管理员,学生和老师进行有关插入数据的练习。但是我在注销时有堆栈。
一流的Test5.java
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?
最佳答案
如何使第二个面板删除并添加第一个面板添加jframe?
使用CardLayout
。 CardLayout
是专门为允许在同一空间中交换面板而设计的。
阅读有关How to Use CardLayout的Swing教程中的部分,以获得更多信息和工作示例。
关于java - 将小组从二等改为一等,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36250484/