Java swing 如何让垂直滚动条始终在最下面 博客分类: java swingJava 滚动条保持最底部滚动条保持最下面滚动条自动跟进滚动自动滚动
程序员文章站
2024-02-24 09:28:13
...
1Java swing 如何让垂直滚动条始终在最下面
(1)JTextPane
见图说话:
上图中箭头所指的是一个JTextPane
JTextPane 被包在JScrollPane 中
//执行结果显示窗口 resultTextPane = new AssistPopupTextPane(); resultTextPane.setContentType("text/html; charset=UTF-8"); resultTextPane.setEditable(false); DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret(); caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE); scrollPane.setViewportView(resultTextPane);
在接收到推送消息时,JTextPane中的内容会动态的增加,增加到一定程度,会产生垂直滚动条,那么如何使垂直滚动条始终保持在JTextPane 最底部呢?
这样就永远可以看到最新的推送消息了.
实现:
(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());
说明:
resultTextPane 的类型是JTextPane;
(2)JTextArea
resultTextArea = new AssistPopupTextArea(); resultTextArea.setEditable(false); resultTextArea.setLineWrap(true); resultTextArea.setWrapStyleWord(true); DefaultCaret caret = (DefaultCaret)resultTextArea.getCaret(); caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE); scrollPane.setViewportView(resultTextArea); resultTextArea.setColumns(10);
DefaultCaret caret = (DefaultCaret)resultTextArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
注意:JTextPane和JTextArea的区别:
JTextPane 可以设置html样式;
JTextArea无法设置成为html样式
项目采用maven 构建
源代码下载地址:
项目源代码
依赖的jar包:
依赖包
------2016-12-12 -------
/*** * 使滚动条处于底部(贴底) * @param requestPanel */ public static void scroll2bottom(final RequestPanel requestPanel) { new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(300); } catch (InterruptedException e1) { e1.printStackTrace(); } requestPanel.scroll2Bottom(); } }).start(); }
上一篇: 舵机信号线怎么区分,有什么用
下一篇: PCF8591 AD/DA转换模块