当前位置: 首页 > 知识库问答 >
问题:

实时网格计算数据(使用Vaadin 7.4.9)

益炜
2023-03-14

这是我的代码,我需要你的帮助。我需要添加监听器到我的网格,这可以实时添加结果到网格(没有后,例如,点击按钮)。我想把数字加到“第一个数字”一栏,把第二个数字加到“第二个数字”一栏,然后在“结果”一栏中得出数字的和。

第一个数字:“1”,“第二个数字”:“1”,结果将是“2”。

Grid grid = new Grid();
IndexedContainer container = new IndexedContainer();
grid.setContainerDataSource(container);
container.addContainerProperty("firstNumber", Integer.class, 0);
container.addContainerProperty("secondNumber", Integer.class, 0);
container.addContainerProperty("result", Integer.class, 0);


/* --- Need add this to the listener or method --- */

Item item = container.getItem(0);
int firstNumber = item.getItemProperty("firstNumber").getValue();

item = container.getItem(0);
int secondNumber = item.getItemProperty("secondNumber").getValue();

result = firstNumber + secondNumber;

item = container.getItem(0);
item.getItemProperty("result").setValue(result);

/* -------------------------------- */

共有1个答案

宰父涵忍
2023-03-14

您可以使用ValueChange事件,它将告诉您奇妙的容器中的值何时更改。不幸的是,该事件只会告诉您更改了哪个<code>属性

由于您只有该信息,因此您必须循环容器以重新计算事物,尽管时间成本的怪物[O(n*m)是n =nº列和m = nº行]

要循环你的容器,你可以使用这个简单的代码(这是最简单的方法,没有任何复杂的逻辑和东西):

container.addValueChangeListener(ev -> {
    List<?> itemIds = container.getItemIds();
    for(Object itemId: itemIds) {
        Item item = container.getItem(itemId);
        Integer firstNumber = (Integer) item.getItemProperty("firstNumber").getValue();
        Integer secondNumber = (Integer) item.getItemProperty("secondNumber").getValue();
        item.getItemProperty("result").setValue(firstNumber+secondNumber);
    }
});

 类似资料:
  • 这里的单元格1代表死单元格。有什么方法可以通过使用DFS或动态编程E.T.C来降低时间复杂性吗?

  • pre { white-space: pre-wrap; } 在本教程中,您将学习如何在可编辑的数据网格(datagrid)中包含一个运算的列。一个运算列通常包含一些从一个或多个其他列运算的值。 首先,创建一个可编辑的数据网格(datagrid)。这里我们创建了一些可编辑列,'listprice'、'amount' 和 'unitcost' 列定义为 numberbox 编辑类型。运算列是 'un

  • 本文向大家介绍云计算和网格计算之间的区别,包括了云计算和网格计算之间的区别的使用技巧和注意事项,需要的朋友参考一下 云计算 云计算是指客户端-服务器计算框架,其中资源以集中方式进行管理。它作为按使用付费服务提供。云计算使系统始终可访问。 网格计算 网格计算是指由相同或不同类型的计算机组成的网络,其目标是提供一种环境,在该环境中可以由多个计算机根据需要一起执行任务。每台计算机也可以独立工作。网格计算

  • 本文向大家介绍集群计算与网格计算之间的区别,包括了集群计算与网格计算之间的区别的使用技巧和注意事项,需要的朋友参考一下 集群计算 群集计算机是指目标是作为同一单元工作的相同类型计算机的网络。当资源匮乏的任务需要较高的计算能力或内存时,可以使用这种网络。将两个或更多相同类型的计算机组合在一起以组成集群并执行任务。 网格计算 网格计算是指由相同或不同类型的计算机组成的网络,其目标是提供一种环境,在该环

  • 我试图优化我的地形,减少三角形计数,同时保持尽可能多的细节。减少工作很好,我削减了五分之一顶点的数量没有太多的视觉损失。在这个新的非对称网格上法线的计算有一个问题。 每个顶点都有法线,下面是计算法线的片段: 其中三角形是与顶点(点)相连的三角形。我把所有的三角形法线加在一起(不进行归一化以使最终的向量以三角形面积加权),然后最后对最终结果进行归一化。 我相信计算是正确的,但结果中有一些讨厌的伪影(

  • pre { white-space: pre-wrap; } 本实例演示如何转换表格(table)为数据网格(datagrid)。 数据网格(datagrid)的列信息是定义在 <thead> 标记中,数据是定义在 <tbody> 标记中。确保为所有的数据列设置 field 名称,请看下面的实例:     <table id="tt">         <thead>             <