`
周凡杨
  • 浏览: 234647 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java Swing如何实时刷新JTextArea,以显示刚才加append的内容

    博客分类:
  • gui
阅读更多
在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。

问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现这个效果,就是执行以下语句

  textArea.paintImmediately(textArea.getBounds());

或
  textArea.paintImmediately(textArea.getX(), textArea.getY(), textArea.getWidth(), textArea.getHeight());

这时,你会发现你刚才增加的消息已经被实时地显示出来了。

 

0
0
分享到:
评论
3 楼 saga_java 2012-06-07  
比较耗费时间的操作不应该在swing事件处理线程上,只有另起一个线程
2 楼 周凡杨 2012-06-07  
应该是在Frame窗口的线程上,因为我点击按钮后,去进行数据处理,数据处理需要很长时间,此时按钮一直呈现的是被点击的样式,Frame线程被阻塞了,所以textArea.append("message");运行后,文本框里没有实时的呈现出来!
而且现在还有另一种方法,就是在处理数据时,另起一个线程,此时不管处理数据需要多长时间,textArea.append("message");运行后,文本框里会实时呈现出来!
1 楼 saga_java 2012-06-07  
你确信textArea.append("message")是运行在swing事件处理线程上?

SwingUtilities.invokeLater(new Runnable() {

     @Override
     public void run() {
         textArea.append("message");
     }
});

相关推荐

    java swing实时时钟

    时钟的显示可能会通过`javax.swing.JLabel`或`javax.swing.JTextArea`来实现,这两个组件都可以显示文本,而`JLabel`更适合用来展示静态信息,如时间。 为了使时钟实时更新,我们需要使用`java.util.Timer`和`java....

    java swing漂亮界面 超酷 javaswing教程

    在“Java Swing漂亮界面 超酷 JavaSwing教程”中,我们主要会探讨如何利用Swing来设计美观且用户友好的界面。Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的...

    java_JTextArea_实现不可修改文本内容、右键菜单

    ### Java Swing JTextArea 实现不可修改文本内容及右键菜单定制 #### 一、概述 在Java Swing开发中,`JTextArea` 是一个非常常用的组件,用于显示或编辑多行文本。有时候,我们可能需要创建一个只读的文本区域或者...

    Java Swing实现添加数据并查询数据显示

    在“查询数据显示”部分,你可能需要使用SELECT语句获取数据,并将其显示在Swing组件上,如JTable或JTextArea。你可以创建ResultSet来迭代查询结果,并将每条记录转换为合适的数据结构,如ArrayList或Vector,然后...

    java swing 多功能 聊天室

    在这个聊天室中,可能使用了JFrame作为主窗口,JPanel作为容器来组织不同的组件,比如JTextField用于输入文字,JButton用于发送消息,JList或JTextArea显示聊天记录,以及可能用到的JScrollPane来滚动内容。...

    JAVA swing中文离线API文档

    例如,`JFrame`是窗口的基础,`JButton`用于创建按钮,`JLabel`用来展示文本或图像,而`JTextArea`和`JTextField`则提供了文本输入和显示的功能。此外,Swing还提供了诸如`JTable`和`JList`这样的组件,用于展示和...

    JTextArea 实现行号

    在Java Swing库中,`JTextArea` 是一个用于显示和编辑多行文本的组件。有时候在编程时,我们可能需要为 `JTextArea` 添加行号功能,以方便用户阅读和编辑代码或者数据。这个功能可以通过自定义边框来实现,就像标题...

    基于Java swing组件实现简易计算器

    4. JTextArea组件:JTextArea是Java swing组件中的一种文本域组件,用于创建一个文本输入框。例如:`JTextArea ta = new JTextArea();` 5. GridLayout布局管理器:GridLayout是一种网络式的布局管理器,将容器空间...

    java swing-JTextArea的使用

    JTextArea是Swing库提供的一个多行文本编辑框组件,可以用于在GUI应用程序中显示和编辑大段文本。

    java swing管理系统源码 程序 代码 图形界面(11套).zip

    Java Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。本压缩包包含了11套完整的Java Swing管理系统源码,这些源码对于学习和理解Java GUI...

    java(swing)+ mysql实现学生信息管理系统

    * 了解 Java Swing 文本组件的使用方法,如 JTextArea 等。 * 了解如何使用 Java Swing 文本组件来显示学生信息。 十、Java Swing 图形用户界面设计 * 了解 Java Swing 图形用户界面的设计原则,如布局、颜色、...

    The Definitive Guide to Java Swing Third Edition

    ### 《Java Swing 终极指南》第三版关键知识点概览 #### 一、书籍基本信息与版权信息 - **书名**:《Java Swing 终极指南》第三版 - **作者**:John Zukowski - **出版社**:本书由Springer-Verlag New York, Inc....

    JavaSwing编程demo

    在JavaSwing编程中,开发者可以创建丰富的桌面应用程序,包括按钮、文本框、菜单等组件,以及布局管理器来组织这些组件。本项目"JavaSwing编程demo"是一个基于Swing的实践应用,旨在帮助初学者了解和掌握Swing的基本...

    JavaSwing界面设计(所有控件及示例)

    Java Swing 是Java编程语言中用于构建图形用户界面(GUI)的一个强大的工具包。它是对早期的Abstract Window Toolkit (AWT) 的扩展,提供了更丰富的功能和更好的平台独立性。Swing 包含了大量的组件,使得开发者可以...

    java swing 编程 模拟聊天室

    在Java Swing中,我们可以使用JFrame、JPanel、JLabel、JButton、JTextField和JTextArea等组件来构建UI。客户端需要能够输入昵称、IP地址和端口号,然后与服务端建立Socket连接。连接成功后,客户端将进入聊天界面,...

    java swing 增删改查

    Java Swing 是Java GUI(图形用户界面)开发工具包,它是Java Foundation Classes (JFC)的一部分。Swing 提供了一系列组件,用于创建桌面应用程序,包括按钮、文本框、表格、菜单等,让开发者能够构建功能丰富的交互...

    java+swing聊天室

    Java Swing聊天室是一种基于Java GUI(图形用户界面)框架Swing构建的实时通信应用程序。Swing是Java标准库的一部分,提供了丰富的组件库,用于创建桌面应用程序。在这个项目中,我们将探讨如何利用Java Swing来实现...

    《Java Swing(第二版)》

    《Java Swing(第二版)》是一本专注于Java GUI编程的经典著作,主要讲解了如何使用Swing库来构建功能丰富的桌面应用程序。Swing是Java平台上用于创建用户界面的主要工具包,它提供了许多组件、布局管理器以及事件处理...

    java swing界面设计

    - "Java图形用户界面设计(Swing常用组件).ppt"和"JavaSwing界面设计(所有控件及示例).ppt"两个文件中可能包含了各种Swing组件的使用示例和实际应用,建议仔细学习和实践。 9. **学习资源** - Java官方文档:提供...

    java swing socket聊天

    7. **用户界面更新**: 为了实时显示聊天记录,需要在UI线程中更新JTextArea的内容。可以使用`SwingUtilities.invokeLater()`方法确保更新操作在正确的线程中执行,防止因违反线程安全规则导致的UI异常。 这个简单的...

Global site tag (gtag.js) - Google Analytics