3

別のパネルにJPanelテキストボックス、保存ボタンがあります。保存ボタンをクリックすると、最初のパネルのテキスト ボックスの値を取得する必要があります。

アクセス方法は?

4

4 に答える 4

6

TextField を Public Static として作成するだけです。そして、ClassName.TextFiledName を使用して TextField にアクセスできます

于 2012-09-10T10:26:06.380 に答える
2

簡単な解決策は、ActionListenerを実装するクラスにコンストラクターを作成し、更新または値を取得するために必要なコンポーネントをコンストラクターに渡すことです。

このソリューションは機能しますが、コードをより再利用可能にするためのより良いアプローチがあります。オブザーバーパターンを見て、コードで使用します。

于 2012-09-10T10:11:42.807 に答える
0

SSCCEがないので、これが一般的な答えになります。
まず、テキストボックスをパブリック静的フィールドにして他のクラスからアクセスすることもできますが、これはこれまでに作成した中で最悪のコードの1つになります。次に、プログラムが複雑になるにつれて、クールであるがうまく動作しないセッター/ゲッターメソッドを使用できます。セッター/ゲッターは、コンポーネント間に緊密な結合を作成します。最後に、オブザーバーパターンを使用することをお勧めします。自転車に対して核兵器を使用しているように見えるかもしれませんが、最終的には最初のトラブルの価値が十分にあります-そしてあなたはその過程で何かを学びます。
詳細とソースコードの例は、Sourcemakingにあります。

于 2012-09-10T10:08:56.863 に答える
0

Controllerパネルを作成するクラスが必要です。コントローラー クラスでパネルへの参照を保持します。CustomPanel1(テキストフィールド自体ではなく) TextField 内のテキストを返すようにgetter メソッドを公開します。同様に、2 番目CustomPanel2も から作成し、Controller参照を保持します。コントローラーでリスナー クラスを定義し、それを 2 番目のパネルに渡します。2 番目のパネルで、リスナーをボタンに追加します。

これは簡単な解決策です。

スイングのチュートリアル

于 2012-09-10T11:18:43.840 に答える