2013-03-16 75 views
2

我对Java上的图形用户界面知之甚少,因为im在后端不是在视图方面,所以我在Jframe上正确地对齐和布局了一些东西。基本上我想有这些结果在JFrame里面放置JPanel

enter image description here

图像本身就说明了,但我有当我运行我的代码是这样的。

enter image description here

有两端没有填充,面板是正确的拍击在JFrame的,这是我要纠正的边界,我不希望有这样的布局,其中面板与Jframe的尺寸相同,至少在两端会有一些填充。

这里是我的代码虽然,这是我的框架

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    String[] cNames = {"First Name", "Middle Name","Last Name","Status"}; 
    Object[][] data = {{"John Doe", "John Doe", "John Doe", "Single"}, 
         {"Doe John", "Doe John", "Doe John", "Married"}}; 
    JTable table = new JTable(data, cNames); 
    table.setPreferredScrollableViewportSize(new Dimension(500, 70)); 

    jScrollPane1 = new JScrollPane(table); 

    listPahel = new JPanel(); 
    listPahel.setLayout(new BorderLayout()); 
    listPahel.add(jScrollPane1, BorderLayout.CENTER); 

    add(listPahel); 

上面的代码reuslts成以上

,如果您有任何见解,请做第二图象的构造赐教

回答

5

最简单的方法是在您的JPanel上设置边框:

listPahel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); 
+0

正是我需要的扫管笏。容易ang精确 – lemoncodes 2013-03-16 13:01:25

+0

hacking away ;-)硬编码_pixels_总是有问题,在边界像一个大小/位置。更好(imo)使用layoutManager,它允许在dpi相关单元方面进行精细控制... – kleopatra 2013-03-18 11:22:29

3
  1. 添加EmptyBorders到的JPanel

  2. 空JPanels(4)添加到东,西,北,JFrame的和的JPanel与JScrollPane的南部地区付诸中心区域,则创建间隙在围绕中心区域10pixels

    然后

  3. 变化的LayoutManager为JPanel的包含JScrollPane的从的FlowLayout(默认在API实现)的borderlayout