2011-12-07 3 views
1
にそれらの値を持つ変数を追加

私は彼らのそれぞれの値と一緒に、JavaのJFrameに私のクラスのフィールド名のリストを追加したいです。これらのフィールドは、プログラムの実行中に進路変更値をのことができると私は、この変更は、私のGUIで動的に表示することにしたいです。例えば、私はクラスBaseStationでフィールドprivate int networkId;を持っている場合は、どのように私はそれをクラスBaseStationFrameのフレームに表示することができますか?JavaのGUI

+0

あなたはコードを書きましたか? –

答えて

1

あなたのUIがあなたのクラスのprivateフィールドへのアクセスを持っているしたい場合は、これらのフィールドにアクセスするために多くのオプションに

  • 使用反射を持っていません(ありませんお勧め)
  • これらのフィールドが変更されたときにまともなゲッターとセッターと火PropertyChangeEvent Sを追加見えるこれらのフィールドは、パブリック(どちらかお勧めしません)またはパッケージ作り、一つのパッケージ(どちらかお勧めしません)
  • ですべてのコードを配置します。

UIでは、getterを使用して初期値を取得し、フィールドの値が変更されたときにイベントを使用してUIを更新できます。すべてのゲッターを取得するためにリフレクションを使用することで、かなり一般的なUIコンポーネントを作成することもできますが、少数のクラスの場合は、これが過剰です。

1

私は質問を理解し100%ではないんだけど、l2fprod PropertySheetは、JavaBeansを介した場合に何が必要だろうか?

1

一般的なアプローチは、コンポーネント値を操作できるコンポーネントからメソッドにアクセスすることです。ここで

テキスト領域を使用して簡単な例。

private final static String newline = "\n"; 
private JTextArea textArea; 


public void init() { 
    //Make sure your components are not null; 
    textArea = new JTextArea(); 
} 

public void actionPerformed(ActionEvent evt) { 
    String text = textArea.getText(); 
    textArea.append(textArea + newline); 
} 

//Get set methods 

ニーズや変数のタイプによっては、特殊なメソッドを解析するか使用する必要があります。 私はあなたがあなたのフィールドの名前が含まれている静的な最終文字列を格納することができ...また神託サイトにjavax.swing GUI

+0

私は上記のあなたの例を完全に理解しているのか分かりません。このコードを使用して特定の変数を表示するにはどうすればよいですか? 'int x'? – nikos

+0

@nikosたとえば、テキスト領域に何かを入力するたびにJLabelを更新することができます。正直言って本当に何が本当に必要なのか分かりません。変更が行われるのを見られないことはおそらくあなたの問題ですか? (この質問を参照してください:http://stackoverflow.com/questions/3179136/jtable-how-to-refresh-table-model-after-insert-delete-or-update-the-data) – sfrj

1

まあ上の偉大なチュートリアルがあるdocumentation for the javax.swing package.

を読むことをお勧めし、いくつかの関連を設計しますフィールドの名前、およびそのフィールドの値の文字列表現の間です。

または、キーと値のペアを定義するすべてのフィールドに対してマップを使用できます。あなたがフィールドを呼び出したいときは、あなたが)(Map.get行うには、あなたがそれらを印刷したいとき、あなたは

Set s = map.keySet() 
for(Object o : s) { 
    print(o.toString() + " = " + map.get(o).toString()) 
} 

これは当然のことながら、あるような何かを行うことができ、Sudocodeは、うまくいけばボールが転がり取得しますあなたのための

グッドラック:)