在JFrame中布局JPanel

时间:2013-03-16 12:17:28

标签: java swing layout

我对Java上的GUI知之甚少,因为我更多的是在后端,而不是在视图方面,所以我遇到了在Jframe上正确对齐和布局内容的问题。基本上我想得到这些结果

enter image description here

图像已经说明了,但是当我运行我的代码时我拥有的就是这个。

enter image description here

两端都没有填充,面板右边是Jframe的边框,我想纠正,我不想有这种布局,其中面板的大小与Jframe,至少在两端会有一些填充。

这是我的代码,这是我的Frame的构造函数

    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);

上面的代码重新进入上面的第二张图片

如果您有任何见解,请赐教我

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

  1. 将EmptyBorders添加到JPanel

  2. 将空的JPanels(四个)添加到JFrame和JPanel的EAST,WEST,NORTH,SOUTH区域,将JScrollPane添加到CENTER区域,然后在CENTER区域周围创建10个像素的间隙

    然后到

  3. 更改LayoutManager for JPanel包含来自FlowLayout的JScrollPane(默认在API中实现)到BorderLayout