我正在尝试在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的过程中)并使用默认布局(由软件自动生成,这也意味着默认布局属性)。