当前位置: 首页 > 面试题库 >

通过单击秋千中的按钮几次更改标签文本不起作用

鲁永福
2023-03-14
问题内容

我需要通过摆动中的一个单击按钮多次更改jlabel.text。在这段代码中,我需要将标签文本设置为在dowork()函数之前开始,并设置为进行中,然后将其设置为在dowork()之后结束(jlabel和dowork中的状态类型执行时间较长):

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
        status.setText("start");
        try {
            Thread.sleep(10000);
        } catch (InterruptedException ex) {
            Logger.getLogger(PelakInRFID.class.getName()).log(Level.SEVERE, null, ex);
        }
        status.setText("in progress");
        dowork();
       try {
            Thread.sleep(10000);
        } catch (InterruptedException ex) {
            Logger.getLogger(PelakInRFID.class.getName()).log(Level.SEVERE, null, ex);
        }
        status.setText("end");

 }

在此代码状态下,仅设置为结束和开始不显示。


问题答案:

我将尝试使用SwingWorker实例(尤其是其doInBackground方法)在doWork与主UI线程不同的线程上执行当前正在执行的操作。按照编写方式,您的侦听器方法势必会在执行期间冻结用户界面,正如您所说的那样,这可能会很长一段时间,从而导致不良的用户体验。

更改JLabel文本可以在三个不同的地方进行:首先,在调用execute(即开始)之前SwingWorker;其次,使用publish/
process机制SwingWorker用户界面上发布中间结果;第三,在done方法中,在方法SwingWorker执行完毕后立即在UI线程上再次调用它doInBackground

参考资料:Oracle的有关工作线程SwingWorker的教程以及该类的
JavaDoc API
文档SwingWorker



 类似资料:
  • 问题内容: 如何通过单击按钮时的Javascript 更改标签的属性值? 问题答案: 如果没有,则单击将重新加载当前页面,因此您需要执行以下操作: 或防止这样的滚动: 或在您的函数中: ....或者不打扰的方式:

  • 当我单击一个按钮时,有没有一种方法可以更改TreeView的TreeItem的文本?我尝试执行oracle示例http://docs.oracle.com/javafx/2/uicontrols/tree-view.htm中所示的操作,但我不想通过单击TreeItem更改它,而是单击按钮。第二步,我想使用上下文菜单打开一个带有Textfield的窗口,在这里我可以手动插入文本以更改treeitem

  • 问题内容: 我正在尝试使用Python和Selenium在LinkedIn上添加联系人。我试图通过在“网络”选项卡(https://www.linkedin.com/mynetwork)中添加LinkedIn提出的联系建议来实现此目的,该选项具有无限滚动功能。 基本上,我希望脚本找到每个建议的配置文件旁边的“连接”按钮,单击该按钮,然后重复执行直到出现错误为止,从而脚本应向下滚动以加载更多“连接”

  • 问题内容: 当我在“更新”面板中使用“按钮”时,它不会触发点击事件,但在更新面板之外,它可以工作。 这是代码 按钮的代码是 问题答案: 试试这个 集到和附加在

  • 下面是使用引导模板的单选按钮组的代码片段。但我试图做的是每次切换选项时更改单选按钮的类部分(即选中单选按钮时,标签类将为“btn btn primary”,如果未选中,标签类将为“btn btn default”)。有人知道如何做到这一点吗?

  • 所以假设我有一个“开”和一个“关”按钮。当我按下打开按钮时,我希望打开按钮隐藏自己,关闭按钮显示出来,反之亦然。 一个人怎么能这么做?