问题描述
我想创建带有动态标签数量的简单文本编辑器。每个选项卡都由文本字段组成,人们可以在其中加载文本文件并编辑或编写自己的文本。
我想检测选项卡中的更改,我的意思是当有人更改文件并想要关闭时,我想显示一个关于您是否要保存更改的对话框。这就是为什么我想关注用户提交的更改的原因。
所以我有
JTabbedPane tabbedPane
与 JtextPane 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 (将#修改为@)