1

为了在 Java 中开发文本编辑器,用户可以使用一个对象打开多个文件JTabbedPane。然后,我将这些文件存储在HashMap<String,TabManager>. (的键HashMap),应该是文件的名称。之后,我在内存中打开了HashMap. 现在,我需要管理我的标签。例如,如果用户在它所选择的选项卡上,显然用户想要更改文本的字体、保存选定的文件、复制它等等。为了管理用户选择的选项卡,我需要一个类来仅从选定的选项卡中获取对象。比如,JTextPaneFile。基本上,我应该这样做:

    for(Map.Entry<String, TabManager> entry: HashMap.entry)
    {

        String key = entry.getKey();

        tabManager = entry.getValue();

        if(tab.getTabSelected().equals(key))
        {
                            // resquest objects from tab selected by the user
             this.container = tabManager.getJTextPane();
             this.file = tabManager.getFile();
        }

    }

我手上有用户选择的选项卡中的对象。现在,我要处理它。问题是:

  • 我如何处理大量数据?
  • 一直以来,我都有这样的循环来知道用户选择了哪个选项卡?

我如何处理这些数据?

4

1 回答 1

1

我看不到你的地图的名称是什么......但假设你有类似的东西:

Map<String, TabManager> map = new HashMap<>();

其中字符串是选项卡的名称,每个选项卡都是唯一的,并且您可以使用 tab.getTabSelected() 获取该名称,然后您可以执行以下操作:

TabManager selectedTab = map.get(tab.getTabSelected());

获取选定的选项卡。

关于你的第二个问题:如何处理大数据......因为你不想每次都读取整个文件并将其复制到内存中,你想要:

  • 开始和结束文件指针,以了解您当前正在显示的文件的哪个块
  • 缓存所有选项卡,每个选项卡显示的页面
  • 在选择选项卡并且缓存已过期或未涵盖您需要的信息时打开文件,当不再选择选项卡时(和/或一段时间后)将其关闭。其他优化是可能的...
于 2013-08-13T04:23:12.367 回答