標籤:java-swing
Java swing 如何讓垂直捲軸始終在最下面
見圖說話:
中箭頭所指的是一個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());
說明:
(1)resultTextPane 的類型是JTextPane;
(2)JTextPane和JTextArea的區別:
JTextPane 可以設定html樣式;
JTextArea無法設定成為html樣式
項目採用maven 構建
原始碼:
項目原始碼
依賴的jar包:
依賴包
Java swing 如何讓垂直捲軸始終在最下面