我对Java上的GUI知之甚少,因为我更多的是在后端,而不是在视图方面,所以我遇到了在Jframe上正确对齐和布局内容的问题。基本上我想得到这些结果
图像已经说明了,但是当我运行我的代码时我拥有的就是这个。
两端都没有填充,面板右边是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);
上面的代码重新进入上面的第二张图片
如果您有任何见解,请赐教我
答案 0 :(得分:5)
最简单的方法是在JPanel
上设置边框:
listPahel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
答案 1 :(得分:3)
将EmptyBorders添加到JPanel
或
将空的JPanels(四个)添加到JFrame和JPanel的EAST,WEST,NORTH,SOUTH区域,将JScrollPane添加到CENTER区域,然后在CENTER区域周围创建10个像素的间隙
然后到
更改LayoutManager for JPanel包含来自FlowLayout的JScrollPane(默认在API中实现)到BorderLayout