一、控制JScrollBar:
JScrollPane sPane = new JScrollPane(textArea);
JScrollBar sBar = sPane.getVerticalScrollBar();
sBar.setValue(int value);//value为具体的位置
可用int value = sBar.getValue();//得到上次JScrollBar的位置
sBar.getMaximum()//得到最大
sBar.getMinimum()//得到最小二、让JTextArea的滚动条跟着光标走:
textArea.setCaretPosition(textArea.getText().length());<------ 树欲静而风不止 ------>
JScrollPane sPane = new JScrollPane(textArea);
JScrollBar sBar = sPane.getVerticalScrollBar();
sBar.setValue(int value);//value为具体的位置
可用int value = sBar.getValue();//得到上次JScrollBar的位置
sBar.getMaximum()//得到最大
sBar.getMinimum()//得到最小二、让JTextArea的滚动条跟着光标走:
textArea.setCaretPosition(textArea.getText().length());<------ 树欲静而风不止 ------>
不过我的程序中这个控件是在内部,我是要从外部控制它可能不太好实现!
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JScrollBar;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Test {
private JFrame frame;
private JScrollPane sPan;
private JScrollBar sBar;
private JTextArea textArea; public Test() {
jbInit();
} public void jbInit() {
frame = new JFrame("JScrollBar 控制");
textArea = new JTextArea();
sPan = new JScrollPane(textArea);//将一个JTextArea放入JScrollPane中
sBar = sPan.getVerticalScrollBar();//得到JScrollPane的JScrollBar
textArea.setText("qwe\nqwe\nqwe\nqwe\nwefwe\n\n\n\n\n\n\n\nwe\nfqwef\nwefwef\nw\ns\n\n\nwedfw\nwef\nsf\ne\nsefsef\nsefeafds\na\nawefaw\naw\nawedae\nawedwaed\n\n\nawdeawde\n\n\nawdeda\n\n\nawde\n");
//预先给这个JTextArea中放一些超过长度的字符串
frame.getContentPane().add(sPan);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.setSize(500, 300);
frame.setVisible(true);
int maxValue = sBar.getMaximum();//得到JScrollBar可移动的最大值
int minValue = sBar.getMinimum();//得到JScrollBar可移动的最小值
System.out.println("当前JScrollBar的最小位置:"+minValue);
System.out.println("当前JScrollBar的最大位置:"+maxValue);
sBar.setValue(200);//将JScrollBar的位置设置到200
sBar.setValue(maxValue);//将JScrollBar的位置设置到最大
} public static void main(String[] args) {
new Test();
}
}
<------ 树欲静而风不止 ------>