0

我试图在这个例子中多次显示表格 10 次,有人可以帮我做吗?

在下面的示例中,我只显示按钮以使其保持简单,以及按钮我将添加其他组件,如文本框等......,在下面的示例中,我得到错误时间应该是最终的。如果我最终确定,我将无法写出时间 = 时间 - 1。

private void showForm(int times){

    if(times >= 1){
      JButton btn = new JButton("ADD");  
      container.add(btn);
      times = times - 1;

      btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                showForm(times);
            }
        });          
    }
}
4

2 回答 2

3

就这样写吧:

private void showForm(final int times){

    if(times >= 1){
      JButton btn = new JButton("ADD");  
      container.add(btn);

      btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                showForm(times - 1);
            }
        });          
    }
}
于 2012-10-08T15:25:11.577 回答
3

如果通过按下按钮,您希望出现新按钮,每次减 1(这是我的理解),要真正使其工作,您还需要添加revalidate()和循环

private void showForm(final int times) {
    if (times >= 1) {
        for (int i=0; i<times; i++) {
            JButton btn = new JButton("ADD");  
            container.add(btn);
            container.revalidate();
            btn.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    showForm(times-1);
                }
            });
        }
    }
}

否则忘记循环但保留revalidate(否则您将看不到任何可见的更改)

于 2012-10-08T15:40:51.130 回答