Java JTextPane中的侦听器
我正在Swing应用程序中使用Java JTextPane中的侦听器,java,swing,file-io,actionlistener,jtextpane,Java,Swing,File Io,Actionlistener,Jtextpane,我正在Swing应用程序中使用JTextPane。在这里,我遇到了一个问题,当我打开一个文件并将其内容读取到JtextPane时,它不会调用DocumentListener 我应该在JTextPane中添加哪个侦听器来读取文件 File file=new JFileChooser().getSelectedFile(); input = new BufferedReader( new InputStreamReader( new FileInputStream(
JTextPane
。在这里,我遇到了一个问题,当我打开一个文件并将其内容读取到JtextPane时,它不会调用DocumentListener
我应该在JTextPane中添加哪个侦听器来读取文件
File file=new JFileChooser().getSelectedFile();
input = new BufferedReader(
new InputStreamReader(
new FileInputStream(
file)));
jTextPane1.read(input, "READING FILE :-)");
下面是文档监听器:
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());
}
});
jTextPane1.getDocument().addDocumentListener(新DocumentListener()){
公共字符串getText(){
int-caretPosition=jTextPane1.getDocument().getLength();
元素根=jTextPane1.getDocument().getDefaultRootElement();
String text=“1”+System.getProperty(“line.separator”);
对于(int i=2;i
read()方法使用editork它的
读取器,读取器可以重新创建文档
实例。创建新的文档
比删除()所有内容并将其添加回旧文档更快。尝试比较读取前后的实例
如果它们不同,请检查侦听器实例是否已添加到新文档实例中,如果未附加,请将其读取。您已经尝试使用yah,但它不起作用。为什么?如果需要帮助,也许您应该添加更多信息。。。你试过什么?您在错误消息或回溯中收到了哪些信息。如果您不给他们任何帮助,他们不会只为您做工作。文档是JTextComponents的模型,文档Listener用于侦听文档中的更改,请问是否有理由(正确地使用read())将文本从一个JTextComponent发送到另一个JTextComponent???,显示一个演示问题的SSCE,但是我们如何保留文档的新实例的引用id
,以便添加到addDocumentListener
?检查setText()之前和之后getDocument()返回的内容