您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

打开jdialog后更新jlabel文本

打开jdialog后更新jlabel文本

为了使您Swing Worker能够进行后台工作,您需要调用SwingWorker#execute()方法。如果您不添加它,那么…它将不知道何时开始工作。就像其他任何变量一样:

JLabel label = new JLabel("Hello world");

但是,如果您从未将其添加label到任何内容(或未ActionListener添加JButton),则将永远不会添加/执行该内容

worker.execute();

在构造函数内部或您希望其开始工作的任何地方。

根据@MadProgrammer的评论

请记住,SwingWorker可以返回数据,因此Boolean可以String使用方法实例字段返回,而不是返回,而是可以getdone方法中返回并使用它来获取工作程序的返回值,该方法更安全,更实用。

他指的是这样更改您的工人的代码

SwingWorker worker = new SwingWorker<Boolean, Void>() {
    @Override
    public String doInBackground() {
        return "<html><center>Lecture X : " + ticketDAO.getLectureX() + "</center></html>";
    }

    @Override
    public void done() {
        lectureXlabel.setText(get());
        lectureXlabel.revalidate();
        lectureXlabel.repaint();
        componentsPanel.revalidate();
        componentsPanel.repaint();
        getContentPane().revalidate();
        getContentPane().repaint();
    }
};
其他 2022/1/1 18:29:08 有501人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶