怎么在jtextareappt加入滚动条的表格

JTextArea JScrollPane滚动条自动在最下边--Aviva
我的图书馆
JTextArea JScrollPane滚动条自动在最下边--Aviva
1)在JTextArea插入最后一条消息之后,使用selectAll()将光标强制移动到JTextArea的最后,实现滚动条的自动滚动。(Aviva中采用的方式)
(2)在JTextArea插入最后一条消息之后,使用(JTextArea)recvArea.setCaretPosition(recvArea.getText().length()),将光标移到最后,实现滚动条的自动滚动。
(3)在JTextArea加载了自动滚动条JScroll之后,将JTextArea加入到JScrolPanel的ViewPort中: (有一些Bug,使得图像有点闪烁) &&&&&recvScrollPane.getViewport().add(recvArea, null);&&&&&然后在JTextArea插入最后一条新消息之后,将滚动条的Viewport重新设置到最底端的位置:&&&&&int height = 20;&&&&&Point p = new Point();&&&&&p.setLocation(0, recvArea.getLineCount() * height);&&&&&recvScrollPane.getViewport().setViewPosition(p);
发表评论:
TA的最新馆藏[转]&[转]&Posts - 40,
Articles - 3,
Comments - 7
18:14 by _cha1R, ... 阅读,
在使用JTextArea显示数据的时候,我们经常需要为它添加滚动条。至于如何添加滚动条,在上一篇文章已经说过了。
这次说说如何让滚动条自动跟随在最后,这也是一个非常实用的功能。
用法很简单,我们知道在JScrollPane添加JTextArea的代码是这样的:
jScrollPane.setViewportView(textArea);
它会返回一个JViewport对象,那么这个JViewport 是什么呢?我们来看看它的介绍:
用于查看基础信息的&视口&或&观察孔&。在滚动时,移动部分称为视口。这好像通过照相机的取景器进行查看。将取景器向上移动会将图片顶部的内部移入视野,而底部的内容将消失。 &
也就是说,当我们拖动滚动条时,能看到的会动的部分就是JViewport。
在JViewport里,我们找到一个方法,setViewPosition(Point p);这个方法是设置JViewport上的哪个坐标会显示在视口左上角(就是0,0)。
我们可以利用这个方法完成这一功能。
int height = 20;
Point p = new Point();
p.setLocation(0, logTxtArea.getLineCount() * height);
logJScroll.getViewport().setViewPosition(p);
看看这段代码最主要的内容:
logJScroll.getViewport().setViewPosition(p);
它把p所表示的坐标显示在(0,0)这个位置,而p所表示的坐标是计算出来的。它根据logTxtArea的行数来计算y坐标,使得Y坐标是整个JTextArea的行数值*每行的高度。
假设有10行,每行高度为10,那Y就是100.
把(0,100)这个点显示在视口右上角(0,0)会发生什么?那只能是滚动条自动拖到最后以把这个点放到(0,0)这个坐标去了。所以这个滚动条永远都会在尾部
更多学习资料:swing(1)
做swing给JTextArea添加滚动条的时候折腾了好一段时间,其实做法很简单,只要给滚动条加一个setViewportView(jTextArea);的方法就可以了,之前一直用add(jTextArea);这个方法,界面总是出不来,后来仔细查看了一下之前做的例子,原来是用错了方法,汗。
代码例子如下:
&&&&&&& scrollPane_1 = new JScrollPane();
&& &&& &scrollPane_1.setBounds(0, 187, 591, 98);
&& &&& &contentPane.add(scrollPane_1);
&& &&& &textArea_1 = new JTextArea();
&& &&& &textArea_1.setBounds(0, 187, 591, 98);
&& &&& &scrollPane_1.setViewportView(textArea_1);
只要设置滚动条的大小就可以了,文本域的大小设置不影响界面。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:49929次
积分:2837
积分:2837
排名:第10211名
原创:243篇
(2)(1)(1)(5)(1)(4)(5)(8)(2)(1)(3)(4)(4)(11)(2)(22)(7)(23)(30)(36)(6)(17)(49)JTextArea滚动条的设置 - ITeye问答
[align=center]JFrame p = new JFrame();
JPanel jp=new JPanel();
JTextArea ta=new JTextArea();
String line=System.getProperty("line.separator");
ta.setLineWrap(true);
JScrollPane js=new JScrollPane();
js.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
js.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
js.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
js.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
js.add(ta);
jp.add(js);
p.add(jp);[/align]
目前还没有答案
已解决问题
未解决问题

我要回帖

更多关于 jtextarea加滚动条 的文章

 

随机推荐