我试图在这个例子中多次展示这个形式10次,有人可以帮我做这个吗?
在下面的示例中,我只显示按钮以保持简单,以及按钮我将添加其他组件,如文本框等...,在下面的示例中,我得到错误 - 时间应该是最终的。如果我把它作为最终,那么我将无法写出times = times - 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);
}
});
}
}
答案 0 :(得分: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);
}
});
}
}
答案 1 :(得分: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
(或者你不会看到任何明显的变化)