(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();
(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();
scrollpane.setviewportview(resulttextarea);
resulttextarea.setcolumns(10);
defaultcaret caret = (defaultcaret)resulttextarea.getcaret();
caret.setupdatepolicy(defaultcaret.always_update);
注意:jtextpane和jtextarea的差別:
jtextpane 可以設定html樣式;
jtextarea無法設定成為html樣式