比如我的swing首先出来的是登陆界面!,但是输入正确用户名和密码后,点击确定按钮后,应该将界面切换到用户使用功能的那个界面!!!不知道这里面的jpanel之间是怎么切换的???
我的想法是隐藏了登陆界面的jpanel,再将用户使用功能的那个jpanel加到原来的框架jframe上...
//这个是登陆界面的jpanel上确定按钮的事件
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    this.setVisible(false);//将登陆界面的jpanel隐藏了
    NewJPanel2 jpanel=new NewJPanel2();//生成一个用户使用功能的jpanel
    
}     
遇到的问题就是在事件里得不到jframe这个对象,所以第2个jpanel就加不上去......还有一种想法是将原来jpanel上的东西都去掉,再将第2个jpanel加到第1个jpanel上,这个我想应该可行,不过就是有点资源浪费,一旦用户点击返回按纽,你又要去掉目前这个jpanel1上的组件,重新生成一个jpanel2(包括上面的组件),把它加到jpanel1上,
这样如果来回多次那就太浪费资源了.....
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    this..removeAll();//将登陆界面的jpanel上的组件全去掉
    NewJPanel2 jpanel=new NewJPanel2();//生成一个用户使用功能的jpanel
    this.add(jpanel);
}哎,昨天想了一晚上,一直到今天还没真正解决,希望大家指点一下....我刚弄swing没多久!!!谢谢了!!!!

解决方案 »

  1.   

    可以使用CardLayout卡片布局管理器:
    http://blog.csdn.net/mq612/archive/2007/01/19/1487648.aspx
      

  2.   

    你先把原来的内容面板清除,然后再设置新面板为当前JFrame的内容面板
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        NewJPanel2 jpanel=new NewJPanel2();//生成一个用户使用功能的jpanel
        this.remove(this.getContentPane());//清除内容面板
        this.setContentPane(jpanel);//设置面板
        this.show();
        
    }     
      

  3.   

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        this.setVisible(false);//将登陆界面的jpanel隐藏了
        NewJPanel2 jpanel=new NewJPanel2();//生成一个用户使用功能的jpanel
        在这里调用函数如addpaneltoFrame(jpanel);
    }     
    遇到的问题就是在事件里得不到jframe这个对象,所以第2个jpanel就加不上去......
    在外面写addpaneltoFrame(NewJPanel2 jp)
    {  
        这里能得到jframe(用this就可以吧)}
    你试一下。
      

  4.   

    谢谢大家的指点.....
    不过有个人指点了下我,再看了下书
    原来可以先dispose掉jframe
    再重新new 一个.....
    呵呵!!不过我没还没尝试,不过应该可以的....