2010-03-29 44 views
0

定位子面板,我有兩個面板:使用的FlowLayout

  • main_panel
  • child_panel

main_panel佈局使用設置:

main_panel.setLayout(flowlayout) 

我加入child_panelmain_panel

main_panel.add(child_panel) 

child_panel被添加到main_panel但其位置是在水平中點和屏幕頂部的垂直截面的橫截面。我想要child_panel位於左上角,如果我已將main_panel的佈局設置爲null,我可以使用child_panel.setlocation(a,b)方法完成該操作。

我在這裏使用了FlowLayout,因爲我希望JPanel中的組件保持 的大小調整爲JFrame

所以我可以添加到child_panelmain_panel的確切位置我想,即使我設定的main_panelnullLayout

回答

1

我會建議使用GridPanelLayout爲你的情況 - 你可以設置元素在網格位置(0,0),並設置它來填充水平和垂直的,這將導致它與規模的增加。然後,您可以按照外觀和感覺準則來獲得適當的邊距等。

1

這個怎麼樣?

import java.awt.FlowLayout; 

import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class Test { 
    public static void main(String[] args) { 
     JFrame f = new JFrame("Test"); 
     JPanel main = new JPanel(new FlowLayout(FlowLayout.LEFT)); 
     JPanel child = new JPanel(); 
     child.add(new JLabel("Label")); 
     main.add(child); 
     f.getContentPane().add(main); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.pack(); 
     f.setVisible(true); 
    } 

} 
0

在這種情況下,我將使用SpringLayout,它使您能夠將面板(NORTH,SOUTH,WEST,EAST)的側面正確放置在任何其他組件的側面(在您的情況下爲主面板)

This tutorial會說明我在說什麼