2011年6月25日

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

posted @ 2011-06-25 07:13 chugf 阅读(1167) | 评论 (0)编辑 收藏


仅列出标题  

posts - 1, comments - 0, trackbacks - 0, articles - 0

Copyright © chugf