我想实施一项计算来跟踪液体摄入量。这应该从用户那里获得输入,执行计算并显示结果。
正如上一篇文章所述,我已经更新了我的代码(来自方法AddItem()),如下所示。
addItem.addComponent(selectItem);
TextField quantity = new TextField("", "Quantity (ml or g)", 4, TextArea.NUMERIC);
addItem.addComponent(quantity);
Button add = new Button("Add");
addItem.addComponent(add);
TextArea results = new TextArea("Results");
addItem.addComponent(results);
//TextArea total = new TextArea("Add Item");
//addItem.addComponent(total);
//--------------------------------------------------------------
add.addActionListener((ActionEvent ev) -> {
Storage s = Storage.getInstance();
int total = 0;
String num = quantity.getText();
Integer num2 = Integer.parseInt(num);
total = total + num2;
// Save the "Hello World" string to storage
s.writeObject("volume", total);
Container ctrResult = new Container(new GridLayout(1,3));
//Define a new container associated to a gridlayout with 1 row and 1 column
ctrResult.addComponent(new Label("Volume"));
ctrResult.addComponent(new Label(Integer.toString(total)));
ctrResult.addComponent(new Label(Integer.toString(total/volume*100)));
//Because you use a value inside a function, addItem should be initialized as final
addItem.addComponent(ctrResult);
});
//--------------------------------------------------------------
return addItem;
此代码显示用户输入(来自用户的编号)。我想保存总数并在计算中使用它来更新正在保存的内容。此外,如果用户添加了另一个数量,则会显示一个新行,但我希望更新现有行。
此外,我想使用以下变量执行另一个计算来计算百分比(在另一个名为Settings()的方法中)。
TextField volume = new TextField("", "Volume (ml)", 4, TextArea.NUMERIC);
settings.addComponent(volume);
计算结果为:总数/体积* 100。
这两种方法都是公开的。
因此,我很感激有关如何在我的代码中实现这一点的任何帮助和指导。
答案 0 :(得分:0)
要更新已在屏幕上显示的组件中的现有值,您需要引用该组件。所以你需要在某个地方存储指向该组件的指针。
获得Label
的组件参考后,您可以在其上调用setText()
,根据您的逻辑将其值设置为您想要的任何值。
您可以将组件引用存储在类文件中,也可以在父Form
上使用putClientProperty。请注意,后一种方法更具挑战性。