gpt4 book ai didi

java - 使用 LayoutClickListener 终止替换组件

转载 作者:行者123 更新时间:2023-12-01 14:52:11 26 4
gpt4 key购买 nike

我有网格布局,添加了一些字段,如下所示:

 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());
}
}
});

将来我想启用标签上的点击,编辑它并在点击其他地方(例如在不同的标签上)后将更改写入数据库。

现在,当我单击第一个标签,然后单击第二个标签时,效果是:第一个标签的值为第二个,第二个标签的值为第二个的文本字段。为什么会这样?单击第一个然后第二个获得第一个标签的第一个值后我应该做什么?

最佳答案

您不需要在标签和文本字段之间交换,您只需使用文本字段并在未聚焦时将其样式设置为看起来像标签。

关于java - 使用 LayoutClickListener 终止替换组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14731599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com