天天看點

Java swing 如何讓垂直滾動條始終在最下面

(1)jtextpane

見圖說話: 

Java swing 如何讓垂直滾動條始終在最下面

 上圖中箭頭所指的是一個jtextpane 

jtextpane 被包在jscrollpane 中

Java swing 如何讓垂直滾動條始終在最下面

//執行結果顯示視窗  

        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 的政策

Java swing 如何讓垂直滾動條始終在最下面

defaultcaret caret = (defaultcaret)resulttextpane.getcaret();  

(2)當jtextpane 動态增加内容時

Java swing 如何讓垂直滾動條始終在最下面

resulttextpane.setselectionstart(resulttextpane.gettext().length());  

        jscrollbar vertical = scrollpane.getverticalscrollbar();  

        vertical.setvalue( vertical.getmaximum());  

 說明: 

resulttextpane 的類型是jtextpane; 

(2)jtextarea

Java swing 如何讓垂直滾動條始終在最下面

resulttextarea = new assistpopuptextarea();  

        resulttextarea.seteditable(false);  

        resulttextarea.setlinewrap(true);  

        resulttextarea.setwrapstyleword(true);  

        defaultcaret caret = (defaultcaret)resulttextarea.getcaret();  

        scrollpane.setviewportview(resulttextarea);  

        resulttextarea.setcolumns(10);  

 defaultcaret caret = (defaultcaret)resulttextarea.getcaret();

        caret.setupdatepolicy(defaultcaret.always_update);

注意:jtextpane和jtextarea的差別: 

jtextpane 可以設定html樣式; 

jtextarea無法設定成為html樣式