1. 功能

作为swing的组件,JList与JTextArea是不可以单独实现滚动功能的,需要与JScrollPane结合才可以。

本代码中:

JList实现从其它数据源获取数据,然后依次对这些数据进行处理,处理过程中,在JList中选择当前处理的记录,依次向下移动。

JTextArea显示处理结果,因为有很多数据,内容满了的时候,需要滚动显示,就是一直显示最新的数据。

2. 实现代码

注意:下面的代码片段必须插入类的各相关段中,不是完整代码。

    // 代码片段一,定义变量
private JList<String> jListAuthor;
private JScrollPane jScrollPaneAuthor;
private JScrollPane jScrollPaneInfo;
private JTextArea jTextAreaInfo; // ......

// 代码片段二,生成对象并加入到界面中
{
{
jListAuthor = new JList<String>();
}
jScrollPaneAuthor = new JScrollPane(); // For ensureIndexIsVisible method to work, the JList must be within a JViewport.
jScrollPaneAuthor.getViewport().setView(jListAuthor);
getContentPane().add(jScrollPaneAuthor);
jScrollPaneAuthor.setBounds(5, 5, 150, 403);
jScrollPaneAuthor.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
} {
{
jTextAreaInfo = new JTextArea();
jTextAreaInfo.setText("");
jTextAreaInfo.setLineWrap(true); // 设置自动换行 // 设置断行不断字
// If set to true the lines will be wrapped at word boundaries (whitespace) if they are too long to fit within the allocated width.
// If set to false, the lines will be wrapped at character boundaries. By default this property is false.
jTextAreaInfo.setWrapStyleWord(true);
}
jScrollPaneInfo = new JScrollPane(jTextAreaInfo);
getContentPane().add(jScrollPaneInfo);
jScrollPaneInfo.setBounds(347, 0, 290, 403);
} // ......

// 代码片段三,获取数据并填充左边的JList
TreeSet<String> ts = myService.getAuthors();
    @SuppressWarnings({ "rawtypes", "unchecked" })
    ListModel<String> jListModelAuthor = new DefaultComboBoxModel(
ts.toArray());
jListAuthor.setModel(jListModelAuthor); // ......

// 代码片段四,对左边的JList进行遍历,处理,处理结果显示在右边JTextArea,并刷左右界面显示
ListModel<String> lm = jListAuthor.getModel();
int totalIndexs = lm.getSize();


// 起始值从当前选择的记录+1
for(int index=jListAuthor.getSelectedIndex()+1; index<totalIndexs; index++) {
String uname = (String)lm.getElementAt(index);


// ......
// ......


// 刷新左边JList窗口
jListAuthor.setSelectedIndex(index);
jListAuthor.ensureIndexIsVisible(index);


// 如果左边界面刷新出现问题,可以尝试加入此条语句
jScrollPaneAuthor.repaint();


List<String> tempResult = myService.processRecord(uname);
for(String str: tempResult) {
// 右边增加一行处理结果
jTextAreaInfo.append(str + "\n"); // 刷新右边JTextArea窗口
jTextAreaInfo.setCaretPosition(jTextAreaInfo.getDocument().getLength());


// ......
// ......
}
}

3. 效果

Java:Swing篇,实现JList、JTextArea的自动滚动,实时刷新功能的更多相关文章

  1. Java Swing 如何添加输入文字并且可以滚动的文本框?( JTextArea ,JScrollPane的使用)

    准备: JTextArea 文本区,一个可以输入文字的文本框 常用方法: 1.setText(String t)设置文本区中显示的文本 2.getText() 获取文本区中显示的文本 JScrollP ...

  2. java SWT中Label实时刷新当前时间

    同样最近在开发swt的一个项目,业务中的一个功能模块类似百度网盘的上传进度条 0/80. 即已上传0个,总共80个.效果展示要的就是实时刷新,2/80呀,15/80呀,针对这个,就有了这篇文章. 下面 ...

  3. Java进阶篇(六)——Swing程序设计(上)

    Swing是GUI(图形用户界面)开发工具包,内容有很多,这里会分块编写,但在进阶篇中只编写Swing中的基本要素,包括容器.组件和布局等,更深入的内容会在高级篇中出现.想深入学习的朋友们可查阅有关资 ...

  4. Java有用经验总结--Swing篇

    Java有用经验总结--Swing篇 前言 本文前言部分为我的一些感想,假设你仅仅对本文介绍的Java有用技巧感兴趣,能够跳过前言直接看正文的内容. 本文的写作动机来源于近期接给人家帮忙写的一个小程序 ...

  5. JAVA 如何使JScrollPane中的JTextArea自动滚动到最后一行?

    1.要使JTextArea带有滚动条,需将JTextArea对象添加到JScrollPane中. JTextArea logArea = new JTextArea(15, 35); //创建JTex ...

  6. Java Swing 使用总结(转载)

    随笔转载自:此去经年ぢ 地址:http://www.cnblogs.com/FLFL/p/5369756.html 1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在 ...

  7. Java Swing窗体小工具实例 - 原创

    Java Swing窗体小工具实例 1.本地webserice发布,代码如下: 1.1 JdkWebService.java package server; import java.net.InetA ...

  8. Java Swing客户端小项目

    记录一下两个用java swing写的客户端. 项目1: 关键词:swing  jtable 代码如下: 1.主类: package com.my.agent.client; import java. ...

  9. Java入门篇(六)——类和对象

    写到这里终于写到了入门篇的最后一个知识点了.类和对象是Java中经常被提到的两个词汇,实际上可以将类看作对象的载体,它定义了对象所具有的功能.Java是面向对象的语言,因此掌握类与对象是学习Java语 ...

随机推荐

  1. java中的数据加密

    记录 一.java中的数据加密 Java提供的安全模型和API 加密基础知识 使用JAVA实现加密 二.Java提供的安全模型和API 2.1.Java语言本身的安全性 自动内存管理:对于生成的对象在 ...

  2. yum安装MangoDB

    1:操作系统信息 2:yum命令查看MongoDB的包信息 3:配置yum源 #vi /etc/yum.repos.d/10gen.repo 4:查看mongoDB的服务器包的信息 5:安装Mongo ...

  3. MariaDB删除重复记录

    不管是程序BUG,还是业务变更,重复数据这个老生常谈的问题,总是会出现.以下是我在MariaDB或是MySQL下处理的一些经验.在SQL Server中,使用窗口函数是很容易实现的.不过听说MySQL ...

  4. HTTP协议详解之User Agent篇

    •User Agent:用户代理 指浏览器他的信息包括硬件平台.系统软件.应用软件和用户个人偏好.用户代理不仅仅指浏览器,还包括搜索引擎. •为什么所有浏览器的User Agent都带有Mozilla ...

  5. 1、配置JAVA的环境变量

    想要成功配置Java的环境变量,那肯定就要安装JDK,才能开始配置的. 想要成功配置Java的环境变量,那肯定就要安装JDK,才能开始配置的. 安装JDK 向导进行相关参数设置.如图:   正在安装程 ...

  6. 迅雷极速版|xunlei下载

    迅雷很不错的下载软件,曾经出现了,迷你版.极速版... 迅雷极速版 迅雷精简版 迅雷极速版-下载: http://pan.baidu.com/s/1dF3XYTj 密码: 5tj3 迅雷精简版-下载: ...

  7. Docker镜像仓库Harbor之搭建及配置

    目录 Harbor介绍环境.软件准备Harbor服务搭建Harbor跨数据复制配置FAQ1.Harbor 介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的 ...

  8. Visual C#两分钟搭建BHO IE钩子

    微软在1997年正式推出Browser Helper Object (BHO), 使程序员能够更好的对IE进行二次开发和操作. 在通过编写BHO程序数月后, 我希望把我的一些经验告诉才开始的同志, 避 ...

  9. HDUOJ----4004The Frog's Games(二分+简单贪心)

    The Frog's Games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) ...

  10. C++知识整理(在此感谢大牛的整理)

    这篇文章主要讲解如何在C++中使用cin/cout进行高级的格式化输出操作,包括数字的各种计数法(精度)输出,左或右对齐,大小写等等.通过本文,您可以完全脱离scanf/printf,仅使用cin/c ...