1

Java でテキスト エディターを開発するために、ユーザーは 1 つのオブジェクトで複数のファイルを開くことができますJTabbedPane。次に、そのようなファイルを に保存しますHashMap<String,TabManager>。(のキーHashMap) は、ファイルの名前にする必要があります。その後、内で開いたファイルを記憶していますHashMap。ここで、タブを管理する必要があります。たとえば、ユーザーが選択したタブにいる場合、ユーザーがテキストのフォントを変更したり、選択したファイルを保存したり、コピーしたりしたいことは明らかです。ユーザーが選択したタブを管理するには、選択したタブからオブジェクトだけを取得するクラスが必要です。など。JTextPane_ File基本的に、私はすべきです:

    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());

選択したタブを取得します。

2 番目の質問について: そのビッグ データの処理方法について...毎回ファイル全体を読み込んでメモリにコピーしたくないので、次のことが必要です。

  • 現在表示しているファイルのチャンクを知るための開始および終了ファイル ポインター
  • 各タブが表示するページのすべてのタブのキャッシュ
  • タブが選択されているときにファイルを開き、キャッシュが最新でないか、必要な情報をカバーしていない場合、タブが選択されていない場合 (および/またはしばらくしてから) 閉じます。他の最適化が可能です...
于 2013-08-13T04:23:12.367 に答える