-1

下面给出的是一个 java 类,它在第一帧中单击“下一步”按钮时被调用。我发送一个参数是我将 getContentPane() 发送到下面给出的程序,这里将访问参数并将其可见性设置为 false,这里我使用“后退”按钮转到第一帧的上一页数据,但是单击后退它没有为我显示上一帧,请帮助我解决问题

它只是一个简单的程序,如果我需要从第二帧中获取一些文本输入,并且我需要再次返回主屏幕,那么我该如何在这个程序中实现这一点

  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);
            }

        }); 
    }
}//
4

1 回答 1

0

抱歉,您的代码风格不好。太多不必要的赋值使我无法理解代码含义和太短的变量名称。

看看你在做什么。在signup()您分配的方法中,e=c.getParent();它意味着ecand的父组件d。然后在back行动侦听器中,您使不可见e并尝试使其d可见。但是 , 的父级也是如此e,当它的父级不可见时dd它永远不会变得可见。

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

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

当然做backfinal

final JButton back=new JButton("Back");
于 2012-08-04T11:29:00.887 回答