java中怎样让JScrollBar滚动条保持在最后一行才合理

徐航 发布于 2013/04/19 14:21
阅读 2K+
收藏 0

当只使用一次jsb.setValue(jsb.getMaximum())方法时,滚动条在滚动栏的中间部分,但是当调用两次时滚动条才滚动到最下方,这是为什么?

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Pattern;

import javax.swing.*;

public class Test1 extends JFrame{
	Container cont = this.getContentPane();
	JPanel jpanel = new JPanel();
	JTextArea jta = null;
	JScrollPane jsp = null;
	JScrollBar jsb = null;
	public Test1(){
		cont.setLayout(new BorderLayout());
		jpanel = new JPanel();
		jta = new JTextArea(5,5);
		for(int i =0 ;i<15;i++){
			jta.append(i+":++\r\n");
		}
		jsp = new JScrollPane(jta);
		jsb = jsp.getVerticalScrollBar();
		//光标移到文本末
		//jta.setCaretPosition(jta.getDocument().getLength());

		//设置滚动条位置
		/*----------------------------问题在这----------------------------*/
		jsb.setValue(jsb.getMaximum());
		jsb.setValue(jsb.getMaximum());
		/*----------------------------问题在这----------------------------*/
		jpanel.add(jsp);
		this.add(jpanel,BorderLayout.NORTH);
		this.setBounds(400, 200, 500, 450);
		this.setResizable(false);
		this.setVisible(true);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);	
	}
	public static void main(String[] args) {
		new Test1();
	}
}


加载中
返回顶部
顶部