2015-03-13 43 views
0

我有一個包含不同的組件(JLabel,JButton,JTextComponent等)的面板。我想在這樣的JTextField名單:如何在數組中正確添加JTextField組件?

ArrayList<JTextField> arrayTf = new ArrayList(); 
Component[] arrayComponent = this.getComponents(); 
for (Component c : arrayComponent) 
{ 
    if (c instanceof JTextField) { 
     arrayTf.add(c); 
    } 
} 

但我不知道這是正確的方式。請告訴我這是正確的方法?還是有更簡單的方法?感謝U.

+4

這似乎是一個非常標準的方式來完成這一點。什麼會讓你覺得它錯了? – Obicere 2015-03-13 17:23:49

+0

.NET人會在這裏使用LINQ:P – 2015-03-13 17:24:21

+0

@BinkanSalaryman Java人可以使用流。我不知道你評論的重點。 – 2015-03-13 17:24:55

回答

1

您的代碼是最簡單的方法。

但是,如果你想獲得幻想,那麼你可以使用Darryl的Swing Utils。基本的代碼是:

List<JTextField> components = SwingUtils.getDescendantsOfType(JTextField.class, this, false); 

這個類的好處是它是可重用的。所以你可以很容易地將所有的JButtons集成到一行中,而無需編寫更多的代碼。此外,此代碼允許您在指定面板或面板以及所有嵌套面板上獲取組件。還有一些其他功能。

+0

哦,謝謝!這是一個好方法。 – Tomas 2015-03-14 13:54:27