gpt4 book ai didi

Java - 没有调用 DocumentListener

转载 作者:行者123 更新时间:2023-11-29 07:50:13 26 4
gpt4 key购买 nike

我正在开发一个小型 GUI 应用程序,我应该在其中打开 JTextPane 中的文本文档。它工作正常,除了当我将 DocumentListener 添加到我的 JTextPane 时,没有调用监听器。

这是 SSCE:

//GUI.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

class GUI

{

public static void main(String[] args)

{
final JFrame frame = new JFrame("Frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final JTabbedPane Tab = new JTabbedPane();

JMenuBar MenuBar = new JMenuBar();

JMenu File = new JMenu("File");
File.setMnemonic('F');

JMenuItem Open = new JMenuItem("Open");

File.add(Open);
MenuBar.add(File);

Open.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent eaal)
{
JFileChooser fc = new JFileChooser(".");
int response = fc.showOpenDialog(frame);
try{
BufferedReader reader = new BufferedReader(new FileReader(fc.getSelectedFile())));
JTextPane Text = new JTextPane();
Text.getDocument().addDocumentListener(new DocumentChangeListener());
Text.read(reader,null);
Tab.add(fc.getSelectedFile().toString(), Text);
}
catch(Exception ea)
{}
}
});

frame.add(Tab);
frame.setJMenuBar(MenuBar);
frame.setSize(450,450);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

}

//DocumentChangeListener.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

class DocumentChangeListener implements DocumentListener
{
public void changedUpdate(DocumentEvent edcl){}
public void insertUpdate(DocumentEvent edcl)
{
System.out.println("Inserted");
}
public void removeUpdate(DocumentEvent edcl){}
}

我在这里做错了什么?

谢谢!

最佳答案

问题是,当您说 Text.read 时,您正在更改文档。

Text.getDocument().addDocumentListener(new DocumentChangeListener()); 移动到之后 Text.read(reader,null);你应该很好!

关于Java - 没有调用 DocumentListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21761392/

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