是否可以通过标记从 Vaadin 中的布局获取组件?
Is it possible to get a component from layout in Vaadin by labeling it?
我有一个问题。是否可以通过用特定名称或其他名称标记来从 Vaadin 中的布局中获取组件?
假设我们有这段代码。
NumberField totalSamples = new NumberField();
totalSamples.setValue(0d);
totalSamples.setEnabled(false);
Label label = new Label("Total samples:");
Button start = new Button("Start");
row = new HorizontalLayout();
row.add(start, label, totalSamples);
layout.add(row);
如果我想从layout
获取label
对象,首先需要获取row
对象,如果我不知道所有对象的索引。有没有办法通过为它们设置特定的编号或名称来获取这些对象?
Button start = layout.getComponentAt(index)
使用集合。
Vaadin 对象只是 Java 对象。因此,当您实例化小部件时,将它们添加到 List
或其他符合您需要的集合中。
您的集合可以作为成员变量存储在外部布局中 class。
在您需要跟踪动态创建的行(其中每个行都有三个小部件)的特定情况下,创建一个 class。 class 应该扩展 HorizontalLayout
。 class 将具有三个成员变量,每个变量都已命名,以便您稍后可以单独访问它们。
class Row extends HorizontalLayout {
NumberField totalSamples ;
Label label ;
Button start ;
// Constructor
public Row ( … ) {
totalSamples = … ;
label = … ;
start = … ;
this.add( label , totalSamples , start ) ;
}
}
除了 Vaadin 小部件,您还可以向此 Row
class 添加其他成员变量。如果每一行代表贵公司生产的特定产品,则添加一个 productId
字段。或者您可能希望单独跟踪每一行以进行日志记录、调试或审计跟踪。如果是这样,请将 UUID
字段添加到 class。
Row
class 可以嵌套在外部布局 class 中,因为您在应用程序的其他任何地方都不需要它。
在您的外部布局上,实例化、收集和放置行。
我有一个问题。是否可以通过用特定名称或其他名称标记来从 Vaadin 中的布局中获取组件?
假设我们有这段代码。
NumberField totalSamples = new NumberField();
totalSamples.setValue(0d);
totalSamples.setEnabled(false);
Label label = new Label("Total samples:");
Button start = new Button("Start");
row = new HorizontalLayout();
row.add(start, label, totalSamples);
layout.add(row);
如果我想从layout
获取label
对象,首先需要获取row
对象,如果我不知道所有对象的索引。有没有办法通过为它们设置特定的编号或名称来获取这些对象?
Button start = layout.getComponentAt(index)
使用集合。
Vaadin 对象只是 Java 对象。因此,当您实例化小部件时,将它们添加到 List
或其他符合您需要的集合中。
您的集合可以作为成员变量存储在外部布局中 class。
在您需要跟踪动态创建的行(其中每个行都有三个小部件)的特定情况下,创建一个 class。 class 应该扩展 HorizontalLayout
。 class 将具有三个成员变量,每个变量都已命名,以便您稍后可以单独访问它们。
class Row extends HorizontalLayout {
NumberField totalSamples ;
Label label ;
Button start ;
// Constructor
public Row ( … ) {
totalSamples = … ;
label = … ;
start = … ;
this.add( label , totalSamples , start ) ;
}
}
除了 Vaadin 小部件,您还可以向此 Row
class 添加其他成员变量。如果每一行代表贵公司生产的特定产品,则添加一个 productId
字段。或者您可能希望单独跟踪每一行以进行日志记录、调试或审计跟踪。如果是这样,请将 UUID
字段添加到 class。
Row
class 可以嵌套在外部布局 class 中,因为您在应用程序的其他任何地方都不需要它。
在您的外部布局上,实例化、收集和放置行。