Swing Cut Panel to anither Panel
- 使用remove()方法,在容器中重绘
private class PanelAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
String buttonName = e.getActionCommand().substring(0);
/**
* 核心处理
* 通过实现事件监听,并创建原来JFrame的引用
* 移除原来的板块
* 增加新来的板块,用JLabel 承接
*/
CutPanel cp = CutPanel.this;
cp.panel.removeAll();
cp.panel.updateUI();
panel.setLayout(new BorderLayout());
cp.panel.validate();
if (buttonName.equals("欢迎首页")){
cp.panel.add(buildImage(),BorderLayout.CENTER);
}
else if(buttonName.equals("JavaSrc")){
cp.panel.add(new JTreeDemo(),BorderLayout.CENTER);
}
else if(buttonName.equals("数据排序")){
cp.panel.add(new DataSort(),BorderLayout.CENTER);
}
else if(buttonName.equals("二叉树")){
cp.panel.add(new BTree(),BorderLayout.CENTER);
}
else if(buttonName.equals("离散lab6")||buttonName.equals("离散lab5")){
cp.panel.add(new SetLab(),BorderLayout.CENTER);
}
else if(buttonName.equals("最短路径")){
cp.panel.add(new DistanceDemo(),BorderLayout.CENTER);
}
else {
cp.panel.add(new NotFound404(),BorderLayout.CENTER);
}
cp.panel.updateUI();
}
}