java swings在同一帧中显示不同的面板(java)

时间:2012-08-03 14:34:31

标签: java

下面给出的是一个java类,它在第一帧中单击“下一步”按钮时被调用。我发送一个参数是我发送getContentPane()到这个给定的下面的程序,这里访问参数并将其visibality设置为是的,在这里我使用“后退”按钮转到上一页dats for ma第一帧,但点击Back它不显示前一帧为我,plz帮助我用dis

它只是一个简单的程序,如果我需要从第二帧获取一些文本输入并再次我需要回到主屏幕所以,我怎么能在这个程序中实现这个

  public class firstframe extends JFrame{

 public firstframe()
 {
    getContentPane().setLayout(null);

    JButton next=new JButton("Next");
    next.setBounds(100,100,100,100);
    getContentPane().add(next);


    next.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ev){

            Container c=getContentPane();

        }
         new signup(c);
    }); 
  }
   public static void main(String ar[]){
   firstframe f=new firstframe();
     f.setVisible(true);
    f.setSize(1365,740);
f.show();

} }

public class signup extends JFrame{

    public signup(Container d)
    {
        final Container c=d;
        c.setVisible(false);
        final Container e;
        e=c.getParent();
        e.setLayout(null);
        JButton back=new JButton("Back");
        back.setBounds(100,100,100,100);
        e.add(back);
        e.setVisible(true);


        back.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ev){
                e.setVisible(false);
                d.setVisible(true);
            }

        }); 
    }
}//

1 个答案:

答案 0 :(得分:0)

抱歉,但你的代码风格不好。太多不必要的任务阻止我理解代码含义和太短的变量名称。

看看你做了什么。在signup()方法中,您指定了e=c.getParent();,这意味着ecd的父组件。然后在back动作监听器中,您e不可见,并尝试使d可见。但是,ed的父级,d永远不可见,而其父级是不可见的。

此代码的快速修复是将back按钮动作侦听器更改为

back.setVisible(false);
d.setVisible(true);

当然让back最终

final JButton back=new JButton("Back");