jtextpane jtextarea 使滚动条到最后(或最前) 通过设置光标位置

本文详细介绍了如何使用jTextPane组件在Java中将滚动条移动到文本末尾,包括代码实现和运行效果展示。

jtextpane jtextarea 使滚动条到最后(或最前) 通过设置光标位置

jTextPane0.setCaretPosition(jTextPane0.getDocument().getLength());

、、、、、、、、、、、

package PositionEnd;

import javax.swing.JTextPane;

public class PoTh implements Runnable{
JTextPane jTextPane0;
public PoTh(JTextPane jTextPane0){
this.jTextPane0=jTextPane0;
}

@Override
public void run() {
while(true){
jTextPane0.setText(jTextPane0.getText()+"\r\nyyyyyyyyvv");
jTextPane0.setCaretPosition(jTextPane0.getDocument().getLength());
try {
Thread.sleep(1000);
System.out.println(jTextPane0.getText().length());

} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

、、、、、

package PositionEnd;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

import org.dyno.visual.swing.layouts.Constraints;
import org.dyno.visual.swing.layouts.GroupLayout;
import org.dyno.visual.swing.layouts.Leading;

//VS4E -- DO NOT REMOVE THIS LINE!
public class ddd extends JFrame {

private static final long serialVersionUID = 1L;
private JTextPane jTextPane0;
private JButton jButton0;
private JTextPane jTextPane1;
private JTextPane jTextPane2;
private JScrollPane jScrollPane0;
private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel";
public ddd() {
initComponents();
}

private void initComponents() {
setLayout(new GroupLayout());
add(getJButton0(), new Constraints(new Leading(65, 10, 10), new Leading(153, 10, 10)));
add(getJScrollPane0(), new Constraints(new Leading(65, 100, 12, 12), new Leading(21, 100, 10, 10)));
setSize(320, 240);
}

private JScrollPane getJScrollPane0() {
if (jScrollPane0 == null) {
jScrollPane0 = new JScrollPane();
jScrollPane0.setViewportView(getJTextPane2());
}
return jScrollPane0;
}

private JTextPane getJTextPane2() {
if (jTextPane2 == null) {
jTextPane2 = new JTextPane();
jTextPane2.setText("jTextPane2");
}
return jTextPane2;
}

private JTextPane getJTextPane1() {
if (jTextPane1 == null) {
jTextPane1 = new JTextPane();
jTextPane1.setText("jTextPane1");
}
return jTextPane1;
}

private JButton getJButton0() {
if (jButton0 == null) {
jButton0 = new JButton();
jButton0.setText("jButton0");
jButton0.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent event) {
jButton0MouseMouseClicked(event);
}
});
}
return jButton0;
}

private JTextPane getJTextPane0() {
if (jTextPane0 == null) {
jTextPane0 = new JTextPane();
jTextPane0.setText("jTextPane0");
}
return jTextPane0;
}

private static void installLnF() {
try {
String lnfClassname = PREFERRED_LOOK_AND_FEEL;
if (lnfClassname == null)
lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName();
UIManager.setLookAndFeel(lnfClassname);
} catch (Exception e) {
System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL
+ " on this platform:" + e.getMessage());
}
}

/**
* Main entry of the class.
* Note: This class is only created so that you can easily preview the result at runtime.
* It is not expected to be managed by the designer.
* You can modify it as you like.
*/
public static void main(String[] args) {
installLnF();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
ddd frame = new ddd();
frame.setDefaultCloseOperation(ddd.EXIT_ON_CLOSE);
frame.setTitle("ddd");
frame.getContentPane().setPreferredSize(frame.getSize());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}

private void jButton0MouseMouseClicked(MouseEvent event) {
PoTh th1=new PoTh(this.jTextPane2);
Thread th=new Thread(th1);
th.start();
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值