从ArrayList – Java每X秒更新一次JLabel
发布时间:2020-12-15 04:56:06  所属栏目:Java  来源:网络整理 
            导读:我有一个简单的 Java程序,它读入一个文本文件,用“”(空格)分割,显示第一个单词,等待2秒,显示下一个…等…我想在Spring中执行此操作或一些其他的GUI. 关于如何用spring轻松更新单词的任何建议?迭代我的列表并以某种方式使用setText(); 我没有运气.我正在使
                
                
                
            | 
                         
 我有一个简单的 
 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的任何建议?什么与重绘()?我画了一个空白. 谢谢! 更新: private void printWords() {
            final Timer timer = new Timer(500,null);
            ActionListener listener = new ActionListener() {
                private Iterator<Word> w = words.iterator();
                @Override 
                public void actionPerformed(ActionEvent e) {
                    if (w.hasNext()) {
                        _textField.setText(w.next().getName());
                        //Prints to Console just Fine...
                        //System.out.println(w.next().getName());
                    }
                    else {
                        timer.stop();
                    }
                }
            };
            timer.addActionListener(listener);
            timer.start();
    } 
 但是,它没有更新标签?我的构造函数看起来像: public TimeThis() {
    _textField = new JTextField(5);
    _textField.setEditable(false);
    _textField.setFont(new Font("sansserif",Font.PLAIN,30));
    JPanel content = new JPanel();
    content.setLayout(new FlowLayout());
    content.add(_textField); 
    this.setContentPane(content);
    this.setTitle("Swing Timer");
    this.pack();
    this.setLocationRelativeTo(null);
    this.setResizable(false);
    //_textField.setText("loading...");
} 
 到达那里……一旦我或者任何人帮助我,我会发布修复,让它发挥作用.再次感谢! 解决方法
 首先,构建并显示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:BufferedReader的readLine()中的IOEXceptions是什么?
 - java – 需要协助运行Map减少WordCount作业与存储在amazon
 - java – 在不同的线程中调用Android服务的方法.它仍然在主线
 - 学习Java前一定要掌握这几个方法,事半功倍!
 - 多线程 – “任何”代码的Perl异步任务,无论它是什么?
 - jsp 自定义标签实例
 - sun.net.www.http.HttpClient在Tomcat 6中发生内存泄漏
 - Java和MySQL中的时间戳和时区转换
 - java – 当xml具有名称空间前缀时,为什么只有某些XPath表达
 - java-ee – 在Websphere7中启用基于角色的安全性
 
