2013-10-24 33 views
0

我試圖將一系列按鈕添加到框架的容器中。但是我發現添加到容器的最後一個按鈕總是佔用整個屏幕,而不是在正確的位置。我該如何解決這個問題?爲什麼最後添加到容器的按鈕佔據整個面板?

下面是用於添加這些按鈕的代碼:

for(int i = 0; i < n; i++) 
    { 
     button[i] = new JButton(); 
     container.add(button[i]); 
     button[i].setText(NAME[i]); 
     button[i].setBounds(WIDTH-OFFSET_EDGE-bd.w, OFFSET+i*(bd.h+bd.gap), bd.w, bd.h); 
     button[i].addActionListener(handler); 
     button[i].setVisible(true); 
    } 

的容器是得到如下:

Container container = this.getContentPane(); 

主類是JFrame的亞類:

public class SimpleTextDemo extends JFrame 

現在我的解決方案是使用一個不可見的額外按鈕,以便有用的按鈕可以位於正確的位置。但似乎這種方法是QUITE愚蠢......

+0

您的集裝箱的布料經理是什麼? – Antoniossss

+1

嘗試設置空佈局:在JFrame'setLayout(null);' – Rekin

+3

因爲默認佈局是具有該行爲的BorderLayout – RamonBoza

回答

3

JFrame的默認佈局是BorderLayout。如果將按鈕添加到JFrame比它將佔用整個容器。使用setLayout方法更改佈局。

1

Java中的默認佈局設置爲容器BorderLAyout()將它們添加正常,你就必須明確提到要添加的按鈕的位置。所有這些你正在添加的按鈕將被添加到中心。最後,所有的人都在重疊。爲了避免這種情況,你可以給他們像CENTER,EAST,WEST,NORTH,SOUTH這樣的位置。

只顯示最後一個按鈕的原因是所有的都是重疊的。

相關問題