把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;
}