2

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

在此处输入图像描述

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

在此处输入图像描述

两端没有填充,面板正好在 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);

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

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

4

2 回答 2

5

最简单的方法是在您的JPanel:

listPahel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
于 2013-03-16T12:23:31.797 回答
3
  1. 将 EmptyBorders 添加到 JPanel

    或者

  2. 在 JFrame 的 EAST、WEST、NORTH、SOUTH 区域添加空的 JPanel(四个),并将 JScrollPane 放在 CENTER 区域的 JPanel 中,然后在 CENTER 区域周围 10pixels 内创建间隙

    然后到

  3. 将 JPanel 的 LayoutManager 包含 JScrollPane 从 FlowLayout(API 中默认实现)更改为 BorderLayout

于 2013-03-16T12:26:37.223 回答