我有一个JDialog,里面的JPanel的内容是随着按钮的点击而更新的(类似于安装软件时的那个“下一步”按钮),我想实现点击“下一步”时更新JPanle的内容,请问如何做?以下是我的代码,但是不能实现更新JPanel的内容。
[code="java"]
public class MyJDialog extends JDialog{
....
private JPanel panel;
private JButton button = new JButton("next");
...
public MyJDialog (){
defaultPanel();//默认界面
....
next.addActionListener(new ActionListener() {//点击next按钮后,界面更新
public void actionPerformed(ActionEvent evt) {
nextPanel(evt);
}
});
}
private void defaultPanel(){
panel = new StepOnePanel() ;
}
private void nextPanel(ActionEvent evt){
panel = new StepTwoPanel();
}
...
}
[/code]
Google了一下,有人说先remove掉panel里面的东西,然后updateUI(),如是我把nextPanel的内容改了一下:
[code="java"]
private void nextPanel(ActionEvent evt){
panel.removeAll()
panel = new StepTwoPanel();
panel.updateUI();
}
[/code]
仍然不能更新界面内容。
StepOnePanel()和StepTwoPanel()都能正确显示,所以大家不要怀疑StepOnePanel()和StepTwoPanel()两个类的正确性。
[b]问题补充:[/b]
pJun (高级程序员):
StepOnePanel() 和 StepTwoPanel()都是一个JPanel对象,默认显示StepOnePanel()或者StepTwoPanel()都能正确显示。
[b]问题补充:[/b]
firefly.li (中级程序员):
首先多谢你的指点,界面显示的是空白,如果不使用removeAll()还是显示的StepOnePanel的界面,不是StepTwoPanel的。