如何检测许多 JTextPane 中文本的变化

问题描述

我想创建带有动态标签数量的简单文本编辑器。每个选项卡都由文本字段组成,人们可以在其中加载文本文件并编辑或编写自己的文本。

我想检测选项卡中的更改,我的意思是当有人更改文件并想要关闭时,我想显示一个关于您是否要保存更改的对话框。这就是为什么我想关注用户提交的更改的原因。

所以我有

JTabbedPane tabbedPaneJtextPane textPane

private LinkedList<Boolean> changedList = new LinkedList<Boolean>(); // here I thought of collecting @R_63_4045@ion about changes but it was silly idea. 

这是我创建新标签功能

 public void newTab()
    {
        tabbedPane.addTab("tab-" + counter++,new JTextPane());
        int totalTabs = tabbedPane.getTabCount();
      
        selected = tabbedPane.getComponentAt(totalTabs-1);
        changedList.add( totalTabs-1,false);
        textPane = (JTextPane)selected;

        textPane.getDocument().addDocumentListener(this);
    }

这些是来自接口的函数

   @Override
    public void insertUpdate(DocumentEvent e)
    {
       changedList.add(tabbedPane.getSelectedindex(),true);
    }

    @Override
    public void removeUpdate(DocumentEvent e)
    {
        changedList.add(tabbedPane.getSelectedindex(),true);
    }

    @Override
    public void changedUpdate(DocumentEvent e)
    {
        changedList.add(tabbedPane.getSelectedindex(),true);
    }

这就是我试图保存的方式

 public void saveAfterChange()
        {
            if (changedList.get(tabbedPane.getSelectedindex()))
            {
                int reply = JOptionPane.showConfirmDialog(null,"Save?",null,JOptionPane.YES_NO_OPTION);

                if (reply == JOptionPane.YES_NO_OPTION)
                {
                    save();
                }
            }
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)