java jtextarea滚动条下滑,关于JTextArea的滚动条问题

在JTe。工数经会公,近做后一常进司还近做后一常xtArea插入最后一条消息之后,添加(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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值