首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从几个线程读取或修改用户界面上的java控件?

如何从几个线程读取或修改用户界面上的java控件?
EN

Stack Overflow用户
提问于 2018-09-27 05:23:14
回答 1查看 22关注 0票数 0

我会写一个代码的摘要,然后我会解释。

我有一个STARTER按钮,它可以启动一个程序和一个进度监视器

代码语言:javascript
复制
// from a button
actionPerformed()
    // enable procedure control buttons pause and cancel at this point
    SomeProcedure ProcTh = new SomeProcedure(aTable)
    ProcTh.Start();
    ProcessLog LogTh = new ProcessLog(aTable, aProgressBar)
    LogTh.Start();
    // inside try catch:
    ProcTh.join();
    LogTh.join();

这是被调用的过程线程的摘要:

代码语言:javascript
复制
class SomeProcedure extends Thread
    JTable aTable = null;
    // the executable part
    public void run()
        for (int i=0;i<aTable.getRowCount();i++)
            // process data in a row
            while (Paused &&! Canceled)
                wait(); // inside a try catch
            if (Canceled)
                i=aTable.getRowCount()-1; // maybe a break is better??
    // the constructor part initializes things
    public SomeProcedure (JTable T)
        aTable = T; 

这是被调用的监视器线程的摘要:

代码语言:javascript
复制
class ProcessLog extends Thread
    JTable aTable = null;
    JProgressBar aBar = null;
    // the executable part
    public void run()
        while (sofarlong<totallong)
            aBar.setValue((int)(sofarlong/totallong));
            // also update values in aTable
    // the constructor part
        public ProgressLog (JTable T, JProgressBar B)
            aTable = T;
            aBar = B; 

我没有编译错误,但当我单击STARTER时,它会挂起,按下它,暂停和取消按钮将不会启用。我可能做错了什么。这是在java中从线程更新图形用户界面控件的最好方法吗?这是显示另一个线程的进度的最好方式吗?我注意到我不能从线程中的run访问图形用户界面控件,这就是为什么我把它们传递给创建线程的原因。

SomeProcedure在SoFarLong上写入,而它正在处理表rown,而ProcessLog只会读取它。和SomeProcedure和ProcessLog一样,它是图形用户界面级别的常见变量,叫做GUI.java

一如既往,任何帮助或指导都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2018-09-27 05:28:21

调用Thread.join()将会阻塞,直到线程结束。通过在您的按钮处理程序中调用它,您的按钮处理程序直到该过程完成后才会返回。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52526207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档