我正在尝试做到这一点,因此当我单击一个按钮时,会创建另一个按钮,您也可以根据需要多次执行此操作。但是我还没有找到一种使它起作用的方法,有什么想法吗?我曾尝试创建一个for循环,但最终只会覆盖其他按钮并删除标签。
答案 0 :(得分:0)
尝试这样的事情:
Form f = new Form(BoxLayout.y());
f.add(createButton("Click Me"));
f.show();
然后使用方法createButton()
:
private Button createButton(String title) {
Button b = new Button(title);
b.addActionListener(e -> {
Container c = b.getParent();
c.add(createButton(title));
c.revalidate();
});
return b;
}
我猜您错过的是对revalidate()
的调用,当您在显示后更改Form
时必须调用它。请注意,第一次添加发生在显示表单之前,并且不会调用revalidate()
。