Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTextPane中的侦听器_Java_Swing_File Io_Actionlistener_Jtextpane - Fatal编程技术网

Java JTextPane中的侦听器

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(

我正在Swing应用程序中使用
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()返回的内容