把JTextArea當做日志顯示界面時,我們需要限制其行數。
如我們需要把JTextArea顯示的行數控制在200行以內,代碼如下:
/** * This method initializes jTextArea
*
* @return javax.swing.JTextArea
*/
private JTextArea getJTextArea() {
if (jTextArea == null) {
jTextArea = new JTextArea();
jTextArea.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
if (jTextArea.getLineCount() >= 200) {
int end = 0;
try {
end = jTextArea.getLineEndOffset(100);
} catch (Exception e) {
}
jTextArea.replaceRange("", 0, end);
}
}
});
}
public void removeUpdate(DocumentEvent evt) {
}
public void changedUpdate(DocumentEvent evt) {
}
});
}
return jTextArea;
}