2010-03-24 9 views

cevap

38

Hayır, bileşenleri belirli bir hücreye ekleyemezsiniz. Yapabilecekleriniz boş JPanel nesnelerini eklemek ve bunlara bir dizide atıfta bulunmaktır, daha sonra bileşenleri istediğiniz herhangi bir sıraya göre eklemektir.

şey gibi: Daha sonra Sonra

int i = 3; 
int j = 4; 
JPanel[][] panelHolder = new JPanel[i][j];  
setLayout(new GridLayout(i,j)); 

for(int m = 0; m < i; m++) { 
    for(int n = 0; n < j; n++) { 
     panelHolder[m][n] = new JPanel(); 
     add(panelHolder[m][n]); 
    } 
} 

, sen JPanel nesnelerden birine doğrudan ekleyebilirsiniz:

panelHolder[2][3].add(new JButton("Foo")); 
+1

Yoksa GridLayout' 'bağlı değilse, sen [kullanabilirsiniz 'GridBagLayout'] (http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html) – bluefoot

4

Evet

JPanel panel = new JPanel(); 
    panel.setLayout(new GridLayout(2,2,1,1)); 
    JButton component= new JButton("Component"); 
    panel.add(component, 0,0); 

senin paneli oluşturun ve set onun düzeni.
yeni GridLayout (numberOfRows, numberOfColums, HorizontalGap, VerticleGap)

(yeni GridLayout (2,2,1,1))   => burada ben 2 satır, 2 kolon,
istiyoruz - herhangi bir yatay halinde boşluklar (HGap), 1px (1unit)
olmalıdır - Ben de dikey boşluklar için aynı istiyorum, bu yüzden dikey boşluklar (VGap) ile aynı. yani 1 birim
- Bu durumda; boşluklar   => boşluk/kenar boşlukları/dolgu - bu anlamda.

, bileşenleri oluşturmak ve panel
ekleyin - (bileşen, 0,0) => 0,0   (2d dizi gibi) satır ve sütun .. olup.
, bileşeninizin nereye gideceği satırı ve sütunu koyarak nereye gittiğini belirtin.
her hücre bir yere == [satır] [sütun]

sahiptir Yoksa hgaps ve vgaps olmadan yapabilirsiniz:

JPanel panel = new JPanel();   
    panel.setLayout(new GridLayout(2,2)); 
    JButton component= new JButton("Component"); 
    panel.add(component, 0,0);