【发布时间】:2023-03-24 12:26:01
【问题描述】:
我正在尝试使用 Java 的 AWT 和 SWING 概念开发一个项目。
我有一个名为“Viewline Numbers(即,我们为此选择了JCheckBox)”的菜单项。当我选中复选框时,它会在另一个文档中显示行号。但是,我想像 Editplus 编辑器一样使用 Document 来显示行号。
这是我的代码
private void ViewLineNumbersActionPerformed(java.awt.event.ActionEvent evt) {
lines = new JTextArea("");
lines.setBackground(Color.LIGHT_GRAY);
lines.setEditable(false);
lines.setSize(10,10);
tx.getDocument().addDocumentListener(new DocumentListener(){
public String getText(){
int caretPosition = tx.getDocument().getLength();
// System.out.println("caretPosition"+ caretPosition);
Element root = tx.getDocument().getDefaultRootElement();
// System.out.println("root"+ root);
String text = "1" + System.getProperty("line.separator");
int c=root.getElementIndex( caretPosition );
// System.out.println(c);
for(int i = 2; i < c + 2; i++){
text += i + System.getProperty("line.separator");
}
return text;
}
@Override
public void `enter code here`changedUpdate(DocumentEvent de) {
lines.setText(getText());
}
@Override
public void insertUpdate(DocumentEvent de) {
lines.setText(getText());
}
@Override
public void removeUpdate(DocumentEvent de) {
lines.setText(getText());
}
});
sp.getViewport().add(tx);
// sp.setViewportView(tx);
sp.setRowHeaderView(lines);
}
【问题讨论】:
-
“请给我答复我的问题。” ..什么问题?更重要的是:What have you tried? 展示你的努力会鼓励其他人提供帮助。
-
能否请您更具体一些,也请给我们一些代码,否则无法帮助您。