2016-05-16 70 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的子类)。