JPanel之间的转换



首先。。。我想说的是,我对使用卡片布局不感兴趣。。。除非有必要(这意味着不使用卡布局会导致不必要的变通方法和复杂的代码)。这毕竟是为了学习,无论如何,我很快就会研究卡片布局。。。

好的,我的问题是相当基本的GUI布局。我的代码不起作用,整个布局让我很困惑。。。

我遇到了麻烦,如何在JPanels之间进行转换,如下所示:

我有一扇窗户。我按下一个按钮,旧的窗口被另一个窗口取代了。我按下一个按钮,那个窗口就会被另一个窗口取代。

我想补充一点,在下面的例子中,我跳过了很多不相关的代码。。。

我从JFrame:开始

  public class StartWindow extends JFrame{
   public StartWindow(){
     //Add JButton & ActionListener
     //When the button is pressed:
          add(new NextWindow()); 
   }
   public static void main(String [] args){
    new StartWindow(); 
   }
}

然后我有几个JPanels。。。

public class NextWindow extends JPanel{
  public NextWindow(){
    //Add a JButton & ActionListener
    //When the button is pressed:
       add(new NextWindow2()); 
       remove(this); 
      //This does not work. Nothing happens. 
}
}
public class NextWindow2 extends JPanel{ // Stuff and so on}

所以,我想知道一个正确的方法来处理这种情况!

您正在为自己添加一个面板。您需要从JFrame中移除面板,将新面板添加到其中,并在JFrame上调用revalidate()。

最新更新