关于JTextArea的滚动条问题
来源:互联网 发布:犯罪前科知乎 编辑:程序博客网 时间:2024/05/16 01:56
我们知道JTextArea与TextArea有多方面的不同,其中,TextArea自动带有滚动条,而且信息显示满后会以旧代新的滚动显示最新数据,而JTextArea则不带有滚动条,而且用JScrollPane加上滚动条后其滚动方式不是以旧代新,新的反而看不见了,那么,如何解决这个问题呢:
在JTextArea插入最后一条消息之后,添加(JTextArea)recvArea.setCaretPosition(recvArea.getText().length()),将光标移到最后,实现滚动条的自动滚动。
在JTextArea加载了自动滚动条JScroll之后,将JTextArea加入到JScrolPanel的ViewPort中:
recvScrollPane.getViewport().add(recvArea, null);
然后在JTextArea插入最后一条新消息之后,将滚动条的Viewport重新设置到最底端的位置:
int height = 20;
Point p = new Point();
p.setLocation(0, recvArea.getLineCount() * height);
recvScrollPane.getViewport().setViewPosition(p);
个人感觉在JTextArea插入最后一条消息之后,添加(JTextArea)recvArea.setCaretPosition(recvArea.getText().length())这个方法最好:
import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
public class ScrollTextArea extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JScrollPane jScrollPane = null;
private JTextArea jTextArea = null;
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(0, 2, 290, 144));
jScrollPane.setViewportView(getJTextArea());
}
return jScrollPane;
}
private JTextArea getJTextArea() {
if (jTextArea == null) {
jTextArea = new JTextArea();
}
return jTextArea;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
ScrollTextArea thisClass = new ScrollTextArea();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
public ScrollTextArea() {
super();
initialize();
}
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJScrollPane(), null);
}
return jContentPane;
}
- 关于JTextArea的滚动条问题
- JTextArea 添加滚动条
- JTextArea添加滚动条
- JTextArea设置滚动条
- JTextArea设置滚动条
- JTextArea设置滚动条
- JTextArea设置滚动条
- JTextArea设置滚动条
- JTextArea设置滚动条
- JTextArea设置滚动条
- JTextArea中的滚动条设置
- 给JTextArea添加滚动条
- 给 JTextArea 加滚动条
- 给 JTextArea 添加滚动条
- java的JTextArea的滚动条和自动换行
- JTextArea放在JScrollPane中时,不能设置JTextArea的PreferredSize,否则不会出现滚动条
- 关于IE滚动条的问题
- 关于IE下滚动条的问题
- XpShop网店系统7.1正式版 免费服务于中小企业
- 深入理解Iterator模式
- PHP 计算时间差
- 路径问题
- 面试算法题
- 关于JTextArea的滚动条问题
- 日记:2010-06-08 Tuesday
- JAVA添加图片(转)
- 改变光标
- linux 性能分析工具汇总
- JAVA中关于向JLabel里面添加图片的方法例子
- using
- 两个div之间的缝隙问题
- 史上最全键盘快捷键