2016-05-16 80 views
0

爲什麼沒有按是否」工作檢查時,如果分量等於‘’檢查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

你是比較桔子和蘋果。 Component不能與""比較,這是String實例。你必須讓文本以檢查它是否爲空:

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

此外,您還可以代替component.getClass().equals(...)component instanceof JTextField。它將返回trueJTextFieldJFormattedTextField(這是JTextField的子類)。