2016-05-16 2 views
0

なぜならばdoesnの」作業時にチェックコンポーネントが等しい場合 『』へチェックJavaコンポーネントが空である

private boolean ControllaCampi(){ 
     boolean verifica = true; 
     for (Component component : pMain.getComponents()){ 
     if ((component.getClass().equals(JTextField.class)) || component.getClass().equals(JFormattedTextField.class))){ 
      if (component.equals("")){ 
       verifica = false; 
       break; 
      } 
     } 
    } 
    return verifica; 
} 
+0

コンポーネントは文字列ではありません! – Hackerdarshi

+0

どうすれば空であるか確認できますか? – Agatino

答えて

0

コンポーネントが文字列ではないので、それは動作しません!

コンポーネントが空の場合は、あなたが行うことができます確認するには:

if (component.getComponentCount()==0){ 
    verifica = false; 
    break; 
} 
+0

getComponentCountが廃止されたことがわかりました – Agatino

+1

私が知る限り、 'countComponents()'は廃止され、 'getComponentCount()'に置き換えられました。 'getComponentCount()'が推奨されなくなったことは決して見たことがありません。あなたはそれが本当ですか? – Hackerdarshi

+0

これは間違っています。 'getComponentCount()'はコンポーネントの子コンポーネントの数を返します。 – andrucz

0

あなたはりんごにオレンジを比較しています。 ComponentStringインスタンスである""を比較することはできません。

String componentText = component.getText(); 
if (componentText.equals("")) { 
    ... 
} 

また、あなたがcomponent instanceof JTextFieldcomponent.getClass().equals(...)を置き換えることができます:あなたはそれが空であるかどうかをチェックするために、テキストを取得する必要があります。 trueJTextFieldJFormattedTextFieldの両方に返します(これはJTextFieldのサブクラスです)。

関連する問題