2011-05-06 20 views
2

setHorizo​​ntalGroup方法的定義如下:setHorizontalGroup(GroupLayout.Group group)我不明白它的參數通過這個打算後:setHorizo​​ntalGroup()的參數

layout.setHorizontalGroup(
layout.createSequentialGroup() 
    .addComponent(c1) 
    .addComponent(c2) 
    .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
     .addComponent(c3) 
     .addComponent(c4)) 
); 

我們如何增加這一切?

+0

建議一句話:不要試圖理解,或者更糟糕的是,手動構建使用GroupLayout的代碼。 GroupLayout應該與GUI設計器(例如NetBeans)一起使用。 – jfpoilpret 2011-05-06 20:56:03

+0

@ jfpoilpret爲什麼? – 2011-05-07 09:04:02

回答

2

這是一個方法鏈的例子。如果您查看GroupLayout.Group的方法,您會注意到所有方法都會返回對其所在對象的引用,以便您可以將多個調用鏈接在一起。

您發佈的代碼等同於以下內容:

GroupLayout.Group group = layout.createSequentialGroup(); 
group.addComponent(c1); 
group.addComponent(c1); 
group.addGroup(...); 
layout.setHorizontalGroup(group); 

由於group.addComponent(c1)回報group,你可以鏈,寫出group.addComponent(c1).addComponent(c2)

+1

@ casablanca我無法理解此語句'GroupLayout.Group group = layout.createSequentialGroup();'createSequentialGroup()不返回對GroupLayout.Group的引用。 – 2011-05-06 19:16:14

+0

@Suhail Gupta:'SequentialGroup'和'ParallelGroup'都是'GroupLayout.Group'的子類,所以它們可以在需要'Group'的任何地方傳遞。 – casablanca 2011-05-07 15:34:48