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

从ArrayList每隔X秒更新JLabel

满才
2023-03-14
问题内容

我有一个简单的Java程序,该程序读取一个文本文件,将其分隔为“”(空格),显示第一个单词,等待2秒,显示下一个…等等…我想在Spring或其他一些GUI。

关于如何使用spring轻松更新单词的任何建议?遍历我的列表并以某种方式使用setText();

我没有运气。我正在使用此方法在consol中打印我的单词,并向其中添加JFrame …在consol中效果很好,但是却发出了无尽的jframe。我在网上找到了大部分。

    private void printWords() {
        for (int i = 0; i < words.size(); i++) {
            //How many words?
            //System.out.print(words.size());
            //print each word on a new line...
            Word w = words.get(i);
            System.out.println(w.name);

            //pause between each word.
            try{
                Thread.sleep(500);
            } 
            catch(InterruptedException e){
                e.printStackTrace();
            }
         JFrame frame = new JFrame("Run Text File"); 
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
         JLabel textLabel = new JLabel(w.name,SwingConstants.CENTER);
         textLabel.setPreferredSize(new Dimension(300, 100)); 
         frame.getContentPane().add(textLabel, BorderLayout.CENTER);
        //Display the window. frame.setLocationRelativeTo(null); 
         frame.pack(); 
         frame.setVisible(true);
        }
    }

我有一个使用JFrame和JLable创建的窗口,但是,我希望静态文本是动态的,而不是加载新的弹簧窗口。我希望它闪烁一个字,消失,闪烁一个字消失。

关于如何更新JLabel的任何建议?有repaint()吗?我在画空白。


问题答案:

首先,构建并显示你的GUI。显示GUI后,使用javax.swing.Timer每500毫秒更新一次GUI:

final Timer timer = new Timer(500, null);
ActionListener listener = new ActionListsner() {
    private Iterator<Word> it = words.iterator();
    @Override 
    public void actionPerformed(ActionEvent e) {
        if (it.hasNext()) {
            label.setText(it.next().getName());
        }
        else {
            timer.stop();
        }
    }
};
timer.addActionListener(listener);
timer.start();


 类似资料:
  • 问题内容: 我有一个简单的Java程序,该程序读取一个文本文件,将其分隔为“”(空格),显示第一个单词,等待2秒,显示下一个…等等…我想在Spring或其他一些GUI。 关于如何使用spring轻松更新单词的任何建议?遍历我的列表并以某种方式使用setText(); 我没有运气。我正在使用此方法在consol中打印我的单词,并向其中添加JFrame …在consol中效果很好,但是却发出了无尽的j

  • 问题内容: 我在Django中的应用程序 可以 创建一些 非常大的SQL查询。我目前使用一个对象,作为我需要的数据,然后使用一个,以返回要显示给用户的内容。 显然,我可以让用户等待一分钟,同时正在执行这些许多查询集并从数据库中提取查询,然后返回此单一HTML页面。 理想情况下,我想在需要时更新页面,例如: 这可能吗? 问题答案: 我最近发现HttpResponse可以是生成器: 这将逐步将结果返回

  • 我正在尝试使用 DropWizard 指标库在我的应用程序上测量应用程序和 jvm 级别的指标。 下面是我的度量类,我在代码中使用它来增加/减少度量。我正在调用下面类的< code>increment和< code>decrement方法来递增和递减度量。 下面是我如何使用上面的<code>TestMetrics</code>类来根据需要增加度量的基础。下面的方法由多个线程调用。 现在我有了另一个

  • 问题内容: 我一直在玩React,并具有以下仅显示在屏幕上的时间组件: 从React的角度来看,使该组件每秒更新以重新绘制时间的最佳方法是什么? 问题答案: 您需要使用来触发更改,但是还需要在组件卸载时清除计时器,以防止它留下错误和内存泄漏:

  • 我正在开发一个Android 2.3.3应用程序,我需要每X秒运行一个方法。 在iOS,我有NSTmer,但在Android我不知道用什么。 有人向我推荐了Handler;另一个人向我推荐了AramManager,但我不知道哪种方法更适合NSTmer。 这是我想在Android中实现的代码: 我需要像NSTmer这样的东西。 你给我推荐什么?

  • 问题内容: 以给定的速率安排一段Java代码的最简单方法是什么? 问题答案: 在Java 5+中,带有: 上面的方法是有利的。在Java 5之前,您使用和: