我正在使用简单的文本编辑器,并且在主面板上,我有JList,其中包含当前打开的文件(CDocument类)和活动文档,其中显示了内容(还包括CDocument类)。我将打开的文件(CDocument对象)存储在矢量中,并在右侧显示活动文档。
现在,在程序启动时,没有活动文档,并且打开的文档列表为空。单击“文件”->“新建”后,从类CDocument创建新的空对象。如果我在活动文档区域(屏幕截图中的红色区域)中输入一些内容,然后重新单击File-> New,则会得到新的,空的(无文本-我已经仔细检查过)CDocument对象。但是,先前活动文档中的文本仍显示到新创建的区域(红色区域-新的空CDocument)。我不知道为什么在这里打扰我的大脑?这是File-> New code chunck:
`
if(e.getSource()==this.menuItemFileNew())
{
CDocument currentDocument=new CDocument();
if(this.panelMain().documentActive()!=null)
{
this.panelMain().remove(this.panelMain().documentActive());
}
this.panelMain().openedDocuments().add(currentDocument);
this.panelMain().setDocumentActive(currentDocument);
this.panelMain().add(panelMain().documentActive().pane(),
BorderLayout.CENTER);
this.panelMain().documentActive().addKeyListener(this);
this.panelMain().documentActive().requestFocus();
this.menuItemFileSave().setEnabled(true);
this.menuItemFileSaveAs().setEnabled(true);
this.menuItemFileClose().setEnabled(true);
this.menuItemFileCloseAll().setEnabled(true);
this.toolBarFileSwitcher().panelActiveDocumentInfo().
panelFileSizeInfo().updatePanel(this.panelMain().documentActive().getText().length(),
false);
this.toolBarFileSwitcher().listOpenedFiles().model().addElement(currentDocument.filename());
this.toolBarFileSwitcher().listOpenedFiles().setSelectedIndex(this.toolBarFileSwitcher().listOpenedFiles().model().size()-1);
this.toolBarFileSwitcher().setVisible(true);
}
`
为什么显示文本,我尝试过updateUI,重新绘制,没有任何效果!
最佳答案
使用Action
封装与您的CDocument
数据类型相关的功能。这将有助于确保所有调用都是一致的。此example管理图像,而此example说明文件菜单。
关于java - 文字重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15672778/