2010-12-03 19 views
3

私たちは、JTable、JCombobox、JTextAreaなどのSwingコンポーネントを含むJava Swingアプリケーションを提供しています。同じアプリケーションの他のインスタンスでJava Swingアプリケーションコンポーネントを再利用できますか?

今や、同じJava Swingアプリケーションの複数のスクリーン/コピーを作成する必要があるという要件があります。例えば、私の主なJava SwingアプリケーションがXならば、Xと同じアプリケーションA、B、C、D、...を作成する必要があります。

ここでXアプリケーションを作成しないでください回。私たちはそれを一度しか作成せずに、他のアプリA、B、C、Dを作成する必要があります。

これらのA、B、C ...アプリケーションはサブセットでもなくても問題ありませんAのスイングコンポーネントの数がXより少なくなっていることを意味します。

クラスファイルを保存してそこからアプリケーションを作成する方法はありますが、Swingコンポーネントはどのように再利用しますか?どこに保管できますか?

これは設計問題の一種です。任意のアイデア..

+1

私はあなたの問題を理解しているかどうかはわかりません。スイングコンポーネントは他のものと同様のクラスです。 JTableなどのデフォルトのものは、デフォルトではJDKライブラリにあり、すべてのアプリケーションで使用できるようになっています。 –

+0

いいえそのようなすべてのコンポーネントのJTableなどは一度作成する必要があります我々は同じアプリケーションの他のレプリカでそれらを使用する必要があります。例えば、 XアプリケーションはJTableを持っているので、今作成されます。アプリケーションはそれを使用し、Bアプリケーションはそれを使用しません。したがって、すべてのSwingコンポーネントオブジェクトのプールのようなものを作成し、それを使用してメインのSwingアプリケーションのレプリカを作成する必要があります。 – u449355

答えて

3

あなたができることは、あなたが物事を出し入れできるようにアプリケーションを設計することだと思います。ですから、プラグイン/モジュールのようなアーキテクチャが最適です。コンポーネントベースのモジュールを設計することができます。アプリケーションにモジュール/プラグインが必要な場合はインストールし、それ以外の場合はインストールしないでください。 Netbeans、Eclipse、IntelliJのような私たちのIDEと同じように。

これはSwingアプリケーションなので、私はNetbeans Platformを調べることを強くお勧めします。

-1

すべてのSwingコンポーネントはシリアライズ可能です。私はあなたがJPanelを作成し、表示し、それをシリアル化し、次に復元して再び表示できると思います。私は、無気化されたパネルは別々に表示されると信じています。

簡単なパネルで試してみてください。それが動作する場合は、このテクニックをアプリケーションに適用してみてください。

+2

これはしません - バージョン間でのシリアル化の動作が保証されていないため、Java Runtimeのマイナーバージョンの変更でもこれを破る可能性があります。 –

関連する問題