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

使用SwingWorker和Timer在标签上显示时间?

黄和怡
2023-03-14
问题内容

我想要一个显示当前时间的时钟,并每秒刷新一次。我使用的代码是:

int timeDelay = 1000;
ActionListener time;
time = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent evt) {
            timeLabel.setText(DateTimeUtil.getTime()); 
            /*timeLabel is a JLabel to display time,
            getTime() is samll static methos to return formatted String of current time */
        }
    };
SwingWorker timeWorker = new SwingWorker() {

        @Override
        protected Object doInBackground() throws Exception {

            new Timer(timeDelay, time).start();
            return null;
        }
    };
timeWorker.execute();

我想timeLabel在除EDT之外的另一个线程中刷新文本。
我做对了吗?还有其他更好的方法吗?
另外,为了提供信息,我还添加timeLabel了一个,其中包含一些类似的实用程序,并在another中调用。 extendedJPanel
MainJFrame


问题答案:

您可以在没有SwingWorker的情况下执行此操作,因为这是Swing计时器的用途。

int timeDelay = 1000;
ActionListener time;
time = new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent evt) {
        timeLabel.setText(DateTimeUtil.getTime()); 
        /* timeLabel is a JLabel to display time,
           getTime() is samll static methos to return 
           formatted String of current time */
    }
};

new Timer(timeDelay, time).start();


 类似资料:
  • 我最近更新了我的charts.js库到最新版本(2.5.0)。这个版本不显示图表上的标签。 我有一个在《小提琴手:http://jsfiddle.net/g6fajwg8》上工作的例子。 但是,我完全按照示例中的方式定义了我的图表,但仍然看不到图表上的标签。 注意:在Google和Stackoverflow上有很多这样的问题,但其中大多数都是关于以前的版本,这些版本在它们上运行良好。

  • 问题内容: 此代码示例属于Stopwatch类的一部分,该类属于一个较大的项目的一部分,该更大的项目的目的是成为模仿Android Clock的桌面gui应用。我具有秒,分钟,小时等标签,这些标签应该从计时器任务内部的无限while循环中更新,而该计时器任务在布尔状态为true时运行。while循环应该实时更新GUI标签。我让计时器任务每毫秒执行一次。为什么我的GUI在程序更新第一个Label后立

  • 问题内容: 我想做什么 我将在数据库中保留有关比赛的数据。我希望能够按特定条件(尤其是比赛类型)搜索比赛。 关于比赛类型 比赛类型保存在一个元组中。一个简短的例子: 这些在模型中的用法如下(再次-这是模型的简化/简化版本): 搜索表格 我不希望搜索表单中的字段是必需的,因此表单的定义如下: 问题 我希望ChoiceField中的select小部件显示一个空标签,但我没有。任何帮助,将不胜感激:)

  • 我有一个对象列表,它具有以下属性 公共类ViewTestCasesBean { } 现在我的行动代码是... 这里详细说明List是要在显示标签中显示的上述对象的List。 我尝试了以下方法 但是得到了以下错误... 编码有什么问题?

  • H=nx。来自\u pandas\u edgelist(链接,source='source',target='target',edge\u attr='value') 这给了我边和边的列表 edge_labels=nx.get_edge_attributes(Q,'value')nx.draw_networkx_edge_labels(Q,pos=nx.draw(Q),标签=edge_labels

  • 在Netbeans中,我创建了一个GUI项目,该项目使用框架前端,我可以添加组件并双击以编辑其事件。我指的是有“源”、“设计”和“历史”选项卡的窗口。 以下是组件和关系: 1-打开文件选择器的按钮。 2-显示文件选择器结果的文本区域。如果用户选择一个文件,它将在文本区域显示文件名;否则它会写“被用户取消”。 3-同时,如果用户选择了一个文件,我想打开一个“please wait”(请等待)对话框,