从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中启用基于角色的安全性