Java swing 如何让垂直滚动条始终在最下面
2个回答
展开全部
实现:
(1)设置JTextPane 的策略
DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
(2)当JTextPane 动态增加内容时
resultTextPane.setSelectionStart(resultTextPane.getText().length());
JScrollBar vertical = scrollPane.getVerticalScrollBar();
vertical.setValue( vertical.getMaximum());
说明:
(1)resultTextPane 的类型是JTextPane;
(2)JTextPane和JTextArea的区别:
JTextPane 可以设置html样式;
JTextArea无法设置成为html样式
(1)设置JTextPane 的策略
DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
(2)当JTextPane 动态增加内容时
resultTextPane.setSelectionStart(resultTextPane.getText().length());
JScrollBar vertical = scrollPane.getVerticalScrollBar();
vertical.setValue( vertical.getMaximum());
说明:
(1)resultTextPane 的类型是JTextPane;
(2)JTextPane和JTextArea的区别:
JTextPane 可以设置html样式;
JTextArea无法设置成为html样式
展开全部
如果JScrollPane内是JTextArea,滚动条与光标位置同步,可编辑的JTextArea无需处理;
如果JScrollPane内是JPanel等无光标组件,可用以下代码:
JScrollPane jspane;
...
jspane.setVisible(false);//注意JScrollPane内面板添加组件后需JScrollPane设置setVisible值才显示改变后样子
new Thread() {
public void run() {
try {
TimeUnit.MILLISECONDS.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//注意不能直接执行下两步,获取滚动棒获取的是上一次的,直接设置的滚动条也是按上一次,会导致总是显示倒数第二行!需等待一段时间才能获取这次滚动棒长度
JScrollBar jscrollBar = jspane.getVerticalScrollBar();
if (jscrollBar != null)
jscrollBar.setValue(jscrollBar.getMaximum());//设置滚动条显示位置为滚动棒最大位置处
}
}.start();
jspane.setVisible();
如果JScrollPane内是JPanel等无光标组件,可用以下代码:
JScrollPane jspane;
...
jspane.setVisible(false);//注意JScrollPane内面板添加组件后需JScrollPane设置setVisible值才显示改变后样子
new Thread() {
public void run() {
try {
TimeUnit.MILLISECONDS.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//注意不能直接执行下两步,获取滚动棒获取的是上一次的,直接设置的滚动条也是按上一次,会导致总是显示倒数第二行!需等待一段时间才能获取这次滚动棒长度
JScrollBar jscrollBar = jspane.getVerticalScrollBar();
if (jscrollBar != null)
jscrollBar.setValue(jscrollBar.getMaximum());//设置滚动条显示位置为滚动棒最大位置处
}
}.start();
jspane.setVisible();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询