私のJavaアプリケーションでは、特定のJPanel(カスタムコントロール)が繰り返されている複雑なGUIを使用しています。実際には100倍もあります(実際はもっと多いかもしれませんが、この例を複雑すぎるようにしたい)。 これらの100個のJPanelには、ユーザーに特定の値を示す4つのJTextBoxコントロールが含まれています。GUIオブジェクトを再利用する方法(フライウェイトパターン)
1つのパネルのJTextBoxは空白になることがありますが、別のパネルでは値を持つことがありますが、他のすべてのボックスではいくつかの数字が表示され、アイデアを得ることができます。どのデータ。
今、メモリのフットプリントを減らすために、私はFlyweightデザインパターンについて学び始めました。それは私が必要とするもののようですが、JPanelを1つのシードとして保持し、それを使って他の99個のパネルを表現すると(JTextBoxの値を変更するだけで)、これらのパネルはすべて共通の参照を共有します。
その場合、そのうちの1つのJTextBox値を変更すると、他のすべての値も変更されます。 この問題を解決し、アプリケーションのメモリフットプリントを低く抑えるにはどうすればよいですか?
私に何か不足していますか? JList
、JTable
とJTree
含む
はい、この質問は簡略化されています。私の実際のアプリケーションでは、ユーザーは現在格納しているすべての可能なデータの概要を把握している必要があります。 – guest86
"JTextBox"とは何ですか?より具体的にあなたの必要性のあなたの説明をしてください。スイングには既にJTableなどの軽量レンダラータイプのコンポーネントがありますが、それがあなたのニーズに合うかどうかは分かりません。 –
MVCの研究をしたいかもしれない – MadProgrammer