2016-04-17 21 views
-2

ここでは、指定されたメソッドで編集されたコードです。Javaで名前でコンポーネントを取得する方法

String value = obj.validateTextFields(txtFields); 

public String validateTextFields(JTextField[] txtField){ 
    String res = ""; 
     for(JTextField txtFields : txtField) { 
       if(txtFields.getText().equals("")) { 
        JOptionPane.showMessageDialog(null, txtFields.getName() +" is empty!"); 
       res +=txtFields.getName()+","; 
       } 
     } 
return res; 

valueは、テキストフィールドの名前で、この名前でテキストフィールドを取得する方法です。

+0

あなたの質問はかなり漠然としているため、解釈して答えにくいです。あなたは名前で何を意味しますか? 「テキストフィールド」とはどういう意味ですか?どのGUIライブラリを使用していますか?スイング? AWT?アンドロイド?その他?あなたのコード/問題/質問をよりよく理解できるように、重要な詳細を記入してください。 –

+0

ok私はswingライブラリを使用しています。私は文字列を返すメソッドを作成しました。この文字列にはJTextFieldsの名前が含まれています。この名前でJTextFieldを取得します。その名前でコンポーネントにアクセスする方法はありません。 – Noorullah

+0

あなたは反射を使ってそれを行うことができますが、そうすることはお勧めしません。検証ライブラリを探してください - それらの多くがあります。春は素晴らしい選択です。 – duffymo

答えて

1

簡単な検索のためにオブジェクトをStringに関連付ける場合は、具体的な実装をとしてMap<String, JTextField>を使用するのが簡単な方法です。

次に、初期化コードで、マップのput(...)メソッドを使用して、関連付けられたStringでコンポーネントをマップに配置し、後でそれを取得する場合は、マップのget(...)メソッドを使用します。

関連する問題