我有一些像这样添加的字段的网格布局:
private Component userDetailsTab(final User user) {
final GridLayout details = new GridLayout(2, 1);
details.setMargin(true);
details.setSpacing(true);
details.addComponent(createDetailLabel(Messages.User_Name));
final Component username = createDetailValue(user.getName());
details.addComponent(username);
...
我也有布局点击监听器,它替换文本字段上的标签,它看起来像这样:
final TextField tf = new TextField();
details.addListener(new LayoutClickListener() {
private static final long serialVersionUID = -7374243623325736476L;
@Override
public void layoutClick(LayoutClickEvent event) {
Component com = event.getChildComponent();
if (event.getChildComponent() instanceof Label) {
Label label = (Label)event.getChildComponent();
details.replaceComponent(com, tf);
tf.setValue(label.getValue());
}
}
});
将来我想启用点击标签,编辑它并在点击其他地方(例如在不同的标签上)后将更改写入数据库。
现在,当我单击第一个标签,然后单击第二个标签时,效果是:第一个具有第二个值,第二个是第二个值的文本字段。为什么会这样?单击第一个然后第二个获得第一个标签女巫值第一个后我该怎么办?