gpt4 book ai didi

java - JTextPane 中的监听器

转载 作者:行者123 更新时间:2023-12-02 07:06:31 25 4
gpt4 key购买 nike

我正在使用JTextPane在 Swing 应用程序中。这里我遇到的问题是,当我打开文件并将其内容读取到 JtextPane 时,它​​不会调用文档监听器。

哪个Listener我应该添加 JTextPane 来读取文件吗?

File file=new JFileChooser().getSelectedFile();
input = new BufferedReader(
new InputStreamReader(
new FileInputStream(
file)));
jTextPane1.read(input, "READING FILE :-)");

这是DocumentListener :

jTextPane1.getDocument().addDocumentListener(new DocumentListener() {

public String getText() {
int caretPosition = jTextPane1.getDocument().getLength();
Element root = jTextPane1.getDocument().getDefaultRootElement();
String text = "1" + System.getProperty("line.separator");
for (int i = 2; i < root.getElementIndex(caretPosition) + 2; i++) {
text += i + System.getProperty("line.separator");
}
return text;
}

public void insertUpdate(DocumentEvent e) {
jTextArea1.setText(getText());
}

public void removeUpdate(DocumentEvent e) {
jTextArea1.setText(getText());
}

public void changedUpdate(DocumentEvent e) {
jTextArea1.setText(getText());
}
});

最佳答案

read() 方法使用 EditorKit 的 Reader,后者又可以重新创建 Document 实例。创建新的 Document 比删除()所有内容并将其添加回旧文档更快。尝试比较阅读前后的实例。

如果不同,请检查监听器实例是否已添加到新的 Document 实例中,如果未附加,则读取。

关于java - JTextPane 中的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16044866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com