我在显示包含例如标签和按钮的多个面板时遇到问题。我想听一下按钮点击并从面板中显示标签值。 代码看起来像这样:
for(int i=0; i < 5;i++){
Panel p = new Panel("panel "+i);
Label l = new Label("label "+ i);
p.addComponent(l);
Button show = new Button("Show Label in subWindow", new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
Window sub = new Window("testing "+label);
getMainWindow().addWindow(sub);
}
});
}
我知道每个按钮上的代码都会记住标签的最后一个值。 我如何在循环中为每个传递绑定特定按钮来显示特定标签的值? 我试图在wicket中实现像PageableListView控件这样的东西。
我希望你能理解我的问题! 谢谢!
答案 0 :(得分:1)
为什么不能将Button子类化并使Label实例(Panel实例或任何其他实例)成为其状态的一部分?
public class MyButton extends Button {
private Label label;
public MyButton (String title, Label l) {
super(...);
this.label = l;
addListener(...);
}
}
换句话说,如果您需要一个按钮来链接某个对象 - 请明确创建它。