She*_*ley 8 java swing add jpanel
我有一个扩展JFrame的类,它有一个BorderLayout.它有两个类型为JPanel的私有实例变量.它们代表按钮面板,称为flipButton和confidenceButtons.单击按钮时,按钮面板将被另一个按钮面板替换.也就是说,如果单击flipButton中的按钮,则flipButton将替换为confidenceButton.我试着这样做:
private class FlipListener implements ActionListener{
public void actionPerformed(ActionEvent e){
remove(flipButton);
add(confidenceButtons,BorderLayout.SOUTH);
validate();
...
}
}
private class ColorListener implements ActionListener{
...
public void actionPerformed(ActionEvent e){
...
remove(confidenceButtons);
add(flipButton,BorderLayout.SOUTH);
validate();
}
}
flipButton中的按钮具有FlipListeners,而ConfidentButton中的按钮具有ColorListeners.程序运行时,单击按钮将删除面板,但不会添加任何内容来替换它.我究竟做错了什么?
编辑
CardLayout原来是一个简单易行的解决方案.事实证明,上面的代码确实有效; 问题是我的代码的另一部分中的拼写错误.>.但是,我总是在使用这些方法时遇到了麻烦,我发现CardLayout简化了它.谢谢.
revalidate()+ repaint()应该是技巧,例如这里
编辑:
觉得你有问题,对于该例子在这里和这里,再例如通过trashgod,可随时根据代码重新建造你的问题
另一种方式是看安德鲁汤普森添加的优秀例子:-) +1