Swing で GUI を作成する際の技術的な側面についてお聞きしたいと思います。コンテンツが多数 (設定、アクション、データの表示、グラフなど) に整理されたJFrame
or (気にしないでください)があると仮定しましょう- すべてが 1 つのフレーム内にあります。JDialog
JPanels
例:ここ
私が今行っていることは、すべてのコンポーネントを 1 つのファイル (名前を付けてくださいMainPanel.java
) で定義し、JPanels
. A には、各パネルを整理するための個別の方法があります
private void organizePanels() {
pnlSettings = createPnlSettings();
pnlActions = createPnlActions();
pnlChart = createPnlChart();
// ...
}
各メソッドはJPanel
、 のレイアウトの設定、その中のコンポーネントの編成などを担当します。複雑ではないパネルが 3 ~ 4 個ある場合、それは理にかなっています (つまり、非常に読みやすいということです)。しかし、より複雑な構造を作成すると、小さなメンテナンスの悪夢になり始めます (または、そのようなものになるための良い出発点です)。
そのため、私はそのようなアプローチを使用したいと考えています: - それぞれJPanel
に別のクラスを作成します - 各クラスには内部コンポーネントへのアクセサが必要です ( A の aJButton
をクリックするとJPanel
、 other の JCombo が更新されJPanel
ます)。- パネル間の通信は、何らかの方法で MainPanel によって提供される必要があります。
そのため、mainPanel では、JPanels への参照のみを持ち、その中のコンポーネントへの参照は持ちません。特定のデータへのアクセスは少し長くなります (pnlActions.getSaveButton.setEnabled(true)
代わりにbtnSave.setEnabled(true)
、おそらく自然な結果です。JPanels のすべてのコンポーネントを公開することもできます。
このアプローチは正しいと思いますか? 常に 2 番目のアプローチを使用する必要があると思いますか、それともあまり複雑でない構造には最初のアプローチが適しているのでしょうか?
どんな経験がありますか?