gpt4 book ai didi

java - 更新 Textarea 中的实例变量 (Java)

转载 作者:行者123 更新时间:2023-12-01 20:24:09 25 4
gpt4 key购买 nike

我正在尝试创建一个代码,该代码将每三秒更新并添加一个实例变量 1。这是我当前的代码

计时器:

 public rityta() {
initComponents();
//Timer
time = new Timer(1000, null);
time.addActionListener(this);
time.start();
}


public void actionPerformed(ActionEvent ae) {
Object o = ae.getSource();
if (o == time) {
tid++;
if (tid % 3 == 0) { //Every three seconds
for (int i = 0; i < djur.size(); i++) { //Wont start until something's been added to tha ArrayList named "djur"
djur.get(i).setValue(djur.get(i).getValue()+1); //Get the instance variable and adds one
System.out.println(djur.get(i).getValue()); //Just a proof of concept that it works, the output window updated every three seconds and adds 1
jTextArea2.update(jTextArea2.getGraphics()); // Is this needed?
}

}
}
}

问题现在,由于输出每三秒更新一次,使用我的类中的新实例变量,因此显示实例变量的 Textarea 也应该更新,对吗?但它不会。那么如何在我的 Textarea 中更新新的实例变量呢?

由于我的 TextArea 还包含 ArrayList 的 ToString,因此 TextArea 看起来像这样:

Name: aaa    Value: 10
Name: bbb Value: 10

我只想将实例变量 10 更新为每三秒加 1。 :)

最佳答案

您不应该期望 JTextArea 自动更新,因为您从未对其调用 setText(...)append(...) ,并且仅仅因为变量已更改,发生这种情况时,其在 JTextArea 中的字符串表示形式不会自动更改。要更新 JTextArea,必须在其上调用这些方法(setText 或追加),或者必须修改 JTextArea 的文档(但要小心)。

至于这个:jTextArea2.update(jTextArea2.getGraphics());您永远不需要这样做,也不应该这样做。

顺便说一句#1,我想知道您是否真的想使用 JList 或 JTable 而不是 JTextArea,但如果不了解您的问题空间和代码的详细信息,我无法确定。

旁注#2:请考虑更改您的用户名。你和我们所有人一样,生来无知,但希望你不愚蠢,因为前者可以通过勤奋努力提高,而后者则不能。

<小时/>

关于:

Since my TextArea also contains the ToString of my ArrayList, the TextArea looks something like this:

Name: aaa    Value: 10
Name: bbb Value: 10

And I just want to update the instance variable of 10 to add 1 every three seconds. :)

您似乎正在显示可变表格数据,即经常更改的数据,因此在这种情况下,我认为您最好使用专为这种情况构建的工具,一个 JTable。如果您这样做,那么您只需在更新引用数据时更改 JTable 模型中的相关单元格数据,并且由于您将连接模型以在其更改时通知其 View (JTable 本身),因此您的数据显示会自动更新。

关于java - 更新 Textarea 中的实例变量 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44168511/

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