gpt4 book ai didi

events - 使用 vaadin 捕获表中文本字段的值更改事件

转载 作者:行者123 更新时间:2023-12-04 02:24:21 30 4
gpt4 key购买 nike

请支持我解决以下问题。

我有一个对话框,其中包含一个表格和其他组件。该表具有多行和多列。一列包含用户输入数据的文本字段

然而,源代码是由其他一些层构建的,如下:

  1. Dialog组件由DialogA类构建
  2. Table组件由TableB类构建
  3. TableB 调用生成器类 GeneratorC,为该表生成列、行、文本字段

如果我留在 GeneratorC 中,我可以在 TableB 的 text fields 中添加监听器并捕获事件,但我留在 DialogA 中,我无法捕获该 text fields .虽然我在 TableB 上添加了监听器,但是这个监听器只捕获列和行的事件,这个监听器不会捕获那个文本字段的任何事件。

实际上,我只需要捕获文本字段的值更改事件。目前我还没有找到解决这个问题的方法。

源码段为TableB添加监听器,此源码留在DialogA中:

 TableB.addListener(new Property.ValueChangeListener()
{
private static final long serialVersionUID =
1L;

@Override
public void valueChange(
ValueChangeEvent event)
{
String temp = (String)event.getProperty().getValue();
}
});

期待您的回答。

最佳答案

监听器应该添加到您在 ColumnGenerator 中添加的文本字段,而不是表格本身:

    private class TextFieldColumnGenerator implements Table.ColumnGenerator {

private TextField tf;

@Override
public Component generateCell(final Table source, final Object itemId,
final Object columnId) {
Item item = source.getItem(itemId);
tf.addListener(new FieldEvents.TextChangeListener() {

@Override
public void textChange(TextChangeEvent event) {

doSomething(event.getText());
}
});
return tf;
}

我认为这应该是正确的,我是在 IDE 外写的,所以可能会有一些错误。

关于events - 使用 vaadin 捕获表中文本字段的值更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10875936/

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