Java中实现滚动条自动滚动到TextArea的末尾(小知识点)
2014-05-13 10:21
567 查看
在设置TextArea滚动条时,是将TextArea的内容添加到JScrollPane中,追加文本时默认的将append的信息追加到文本域后面,在出现滚动条后,滚动条并不随着追加的信息滚动,而显示最新的信息。经过一番折腾,终于明白了如果搞定这个小知识点,如下代码:
package exercise; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.border.TitledBorder; public class JScrollPaneDemo { JTextField sendMessage; JTextArea getMessage; public static void main(String[] args) { new JScrollPaneDemo().frameInit(); } public void frameInit() { JFrame frame = new JFrame("滚动条及文本域示例"); frame.setLayout(null); frame.setBounds(200, 200, 280,250); getMessage = new JTextArea(); getMessage.setBounds(5, 0, 250, 160); getMessage.setText("文本域接收信息 "); getMessage.setEditable(false);//不可编辑 getMessage.setBorder(new TitledBorder("文本区域"));//设置标题 getMessage.setLineWrap(true);//设置自动换行 getMessage.setWrapStyleWord(true);//设置以单词为整体换行,(即不会将单词切割成两半) JScrollPane scrollPane = new JScrollPane(getMessage);//添加滚动条 scrollPane.setBounds(5, 0, 250, 160); sendMessage = new JTextField(); sendMessage.setBounds(5, 170, 250, 30); sendMessage.setText("按回车发送信息:输入的信息要够长,够多,才可以看到自动换行和滚动条,滚动条显示在末尾,即最新输入的一行中!"); frame.add(scrollPane); frame.add(sendMessage); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myEvent(); frame.setVisible(true); } public void myEvent(){ sendMessage.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_ENTER){ String msg = sendMessage.getText(); getMessage.append("\r\n信息::" + msg); //每次添加信息时刷新文本区域,将滚动条显示在末尾,即显示最新一次输入 getMessage.setCaretPosition(getMessage.getText().length()); sendMessage.setText(null); } } }); } }在每次追加信息时,对setCarePosition()方法进行调用,想当于定位显示信息,这样滚动条就会显示在文本域的末尾了。
相关文章推荐
- java中swing实现TextArea显示内容满时自动滚动到末尾
- 如何实现滚动条的自动滚动到textarea的末尾
- Java Swing TextArea自动滚动到最后一行的方法
- java swing中Jtable+JScrollpane实现自动滚动到底部——测试真实有效
- 不用JAVA就能实现文字自动滚动
- 用PHP+java实现自动新闻滚动窗口
- html textarea 自动在底部滚动的实现方法------终于搞定你
- 用PHP+java实现自动新闻滚动窗口
- Java:Swing篇,实现JList、JTextArea的自动滚动,实时刷新功能
- 用PHP+java实现自动新闻滚动窗口
- Eclipse中自动重构实现探索-Java基础-Java-编程开发
- jQuery实现页面滚动时元素智能定位,页面导航栏会自动定位到浏览器顶部
- java 实现QQ自动登录(带验证码)
- javscript实现滚动条滚动到页面底部自动加载增加页面内容
- java中用jquery AutoComplete 实现自动补全(二)本地JSON实现自动补全
- 用Ant实现Java项目的自动构建和部署
- 用Ant实现Java项目的自动构建和部署
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- java ArrayList自动排序算法的实现
- android中ViewPager的用法以及自动滚动播放实现初探