gpt4 book ai didi

java - 如何从另一个线程访问GUI

转载 作者:行者123 更新时间:2023-12-01 14:32:33 25 4
gpt4 key购买 nike

我想要完成的是从另一个线程设置文本字段。我的程序有一个按钮,当我单击它时,一个新线程开始运行,然后从套接字获取一些内容,我想根据数据设置三个文本字段,但我做不到。我在我的 mainwindow 类中编写了一个方法来执行 .settext() 调用,但我无法调用该方法,因为我什至没有对我的 mainwindow 实例的引用。我怎样才能正确地更新我的文本框。

还有一个小问题,我是否必须将组合框设为最终的,因为编译器会这样提示。

无法引用在不同方法 MainWindow.java 中定义的内部类内的非最终变量组合框

这是什么原因造成的?

public void run()
{
os.print("INIT {ClassName USARBot."+type.name +"} {Location "+firstPos.x+" , "+firstPos.y+" ,"+firstPos.z+" } {Name "+robotName+"}\r\n");
while (true)
try
{
String str=is.readLine();
String[] substr1=null;
Position p = new Position();
Scanner s=null;
if(str.contains("{Type GroundTruth}"))
substr1=str.split(" ");
s=new Scanner(substr1[8]);
p.x=s.nextDouble();
p.y=s.nextDouble();
p.z=s.nextDouble();
s.close();
//Here I want to set Textfields in MainWindow
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}

最佳答案

正确答案来自“孤独星云”(无法投票支持您的评论或在此处发表评论)。

在这里您可以找到对 SwingWorker 的很好的解释,并举例说明:SwingWork example and explanation
上周当我必须解决与你相同的问题时,我认为这有点复杂。

关于java - 如何从另一个线程访问GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16752857/

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