0

私はJavaが初めてで、Java GUIも初めてです。タブ付きペインで設定されたかなり基本的な GUI があります。1 つの基本的なペインで、ユーザーは項目をコレクションに追加できます。前述のペイン内の項目 (つまり、追加されたすべての項目のリスト) をリストする ComboBox メニューが必要な別のペインのセットアップを開始し、ユーザーが削除する項目を選択できるようにします。 (ボタン経由))。アイテムの配列を「削除」ペインに渡し、ComboBox 内でさまざまな方法で使用しようとしましたが、ComboBox はコンストラクターで作成されるため、アイテムが追加されても更新されません。

他のペインから動的に更新されるため、この配列にアクセスする最良の方法は何でしょうか?

4

1 に答える 1

0

それを達成するためのいくつかの方法を考えることができます。

両方のパネルに共通モデル インターフェイスへの参照を渡す最良の方法の 1 つ。これにより、最初のパネルがアイテムを追加し、2 番目のパネルがそれらの変更が発生したときに通知され、それ自体が更新されるようになります。

セットアップ時にこのモデルを両方のパネルに渡したくない場合は、代わりにシングルトンを使用して、モーダルを両方のペインからグローバルにアクセスできるようにすることができます。この方法でモデルの実装を変更する方が簡単なので、モデルをコンストラクターに渡すことを好む傾向があります。

DefaultComboBoxModel考えられる解決策の 1 つは、基本実装としてa を使用することです。これには、モデルから要素を追加および削除できる機能がありますが、非常に簡単にモデルであるため、コンボに割り当てることができます。しかし、これはあなたがコレクションで何を達成したいかによって決まります。

別のアプローチは、にアタッチChangeListenerすることJTabbedPaneです。アクティブなタブが変更されたら、最初のペインの値を調べて、2 番目のペインに割り当てることができます。

これは、タブ付きペインが 2 つのペイン間の関係を「認識」している (そしてどの 2 つのペインを更新する必要があるかを認識している) ことを前提としているため、最初のものよりも結合されています。

于 2013-03-04T02:50:44.950 に答える