文字重复

时间:2013-03-28 01:41:56

标签: java swing

我正在使用简单的文本编辑器,在主面板上,我有JList与当前打开的文件(CDocument类)和活动文档,其中显示了内容(也是CDocument类)。我将打开的文件(CDocument对象)存储在向量中,右侧显示活动文档。enter image description here

现在,在程序启动时,没有活动文档,打开的文档列表为空。单击File-> New后,我从类CDocument创建新的空对象。如果我在活动文档区域(屏幕截图中的红色区域)输入内容然后我重新点击File-> New,我得到新的,空的(没有文本 - 我已经双重检查)CDocument对象。但是,之前活动文档中的文本仍然显示为新创建的(红色区域 - 新空CDocument)。我在这里破坏了我的大脑,因为我不知道为什么?!这是File->新代码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,重新绘制,没有任何效果!

1 个答案:

答案 0 :(得分:2)

使用Action封装与CDocument数据类型相关的功能。这有助于确保所有调用都是一致的。此example管理图片,而此example则说明文件菜单。