设置具有textarea作为组件的RowHeaderView宽度

时间:2014-02-04 14:14:13

标签: java

我正在尝试在jTextArea旁边显示行号。

以下是代码用于目的 - >

jScrollPane1.setRowHeaderView(jTextArea3);
jTextArea1.getDocument().addDocumentListener(new DocumentListener() {
    public String getText() {
        int caretPosition = jTextArea1.getDocument().getLength();
        Element root = jTextArea1.getDocument().getDefaultRootElement();
        text = "1" + System.getProperty("line.separator");
        for (int i = 2; i < root.getElementIndex(caretPosition) + 2; i++) {
            text += i + System.getProperty("line.separator");
        }
        return text;
    }

    @Override
    public void changedUpdate(DocumentEvent de) {
        jTextArea3.setText(getText());
    }

    @Override
    public void insertUpdate(DocumentEvent de) {
        jTextArea3.setText(getText());
    }

    @Override
    public void removeUpdate(DocumentEvent de) {
        jTextArea3.setText(getText());
    }
});

(其中jTextArea3是行号的显示位置,jTextArea1是输入文本的位置.JScrollpane2包含jTextArea3)。

它工作正常,但是在行数较多的情况下,存在问题 - >

http://imageshack.com/a/img36/737/yvhk.png(尚未允许直接上传图片)

请帮忙吗?

PS-&GT;我正在使用netbeans(只是在学习java的过程中)并使用默认布局(由软件自动生成,这也意味着默认布局属性)。

0 个答案:

没有答案