2017-08-01 52 views
0

在我的節目,我有50多個文本字段和對他們有一個明確的按鈕。我想知道是否有一種方法可以遍歷它們來清除它們,而不是將每個文本字段設置爲textfield.setText(「」)。我知道這種方式可行,但我只是想知道還有什麼可能的。多的JTextField結算

感謝

+3

創建一個列表''並遍歷它。 –

+2

在列表中添加所有'JtextField',然後遍歷列表並清除該值。 – zombie

回答

0

您可以將整個幀傳遞給函數,然後取這個範圍內的所有部件,並檢查它是否是一個文本框只是明確我

類具有靜態函數:

public class JCTest 
{ 
    public static void Clear(JInternalFrame intFrame) 
    { 
     if (intFrame == null) 
      return; 
     Container con = intFrame.getContentPane(); 
     for (Component c : con.getComponents()) 
     { 
      if (c instanceof JTextField) 
      { 
       JTextField j = (JTextField)c; 
       j.setText(""); 
      } 
     } 
    } 
} 

稱之爲:

public class Main 
{ 
    public static void main(String[] args) 
    { 
     JInternalFrame intFrame = new JInternalFrame(); 
     JCTest.Clear(intFrame); 
    } 
} 

或者只是做它裏面的視圖類

for (Component C : this.getComponents()) 
{  
    if (C instanceof JTextField){ 

     ((JTextField) C).setText(""); 
    } 
} 
0

所有文本字段創建列表,只是清除它們都:

List<JTextField> fields = new ArrayList<>(); 
fields.add(new JTextField()); 
fields.add(new JTextField()); 
fields.add(new JTextField()); 

fields.forEach((a) -> a.setText(""));