java swing 实时_Java:Swing篇,实现JList、JTextArea的自动滚动,实时刷新功能

本文介绍了如何在Java Swing应用中使用JList和JTextArea实现实时滚动和刷新功能。通过创建JList和JTextArea对象,设置滚动条策略,更新数据模型并遍历JList,将处理结果动态显示在JTextArea中,同时确保选中的列表项可见并刷新界面。
摘要由CSDN通过智能技术生成

//代码片段一,定义变量

private JListjListAuthor;privateJScrollPane jScrollPaneAuthor;privateJScrollPane jScrollPaneInfo;privateJTextArea jTextAreaInfo;

// ......//代码片段二,生成对象并加入到界面中

{

{

jListAuthor= newJList();

}

jScrollPaneAuthor= newJScrollPane();//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= newJTextArea();

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= newJScrollPane(jTextAreaInfo);

getContentPane().add(jScrollPaneInfo);

jScrollPaneInfo.setBounds(347, 0, 290, 403);

}

// ......//代码片段三,获取数据并填充左边的JList

TreeSet ts =myService.getAuthors();

@SuppressWarnings({ "rawtypes", "unchecked"})

ListModel jListModelAuthor =newDefaultComboBoxModel(

ts.toArray());

jListAuthor.setModel(jListModelAuthor);

// ......//代码片段四,对左边的JList进行遍历,处理,处理结果显示在右边JTextArea,并刷左右界面显示

ListModel lm =jListAuthor.getModel();int totalIndexs =lm.getSize();//起始值从当前选择的记录+1

for(int index=jListAuthor.getSelectedIndex()+1; index

String uname=(String)lm.getElementAt(index);//......//......//刷新左边JList窗口

jListAuthor.setSelectedIndex(index);

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

jScrollPaneAuthor.repaint();

List tempResult =myService.processRecord(uname);for(String str: tempResult) {//右边增加一行处理结果

jTextAreaInfo.append(str + "\n");//刷新右边JTextArea窗口

jTextAreaInfo.setCaretPosition(jTextAreaInfo.getDocument().getLength());//......//......

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值