在JFrame里面放置JPanel
问题描述:
我对Java上的图形用户界面知之甚少,因为im在后端不是在视图方面,所以我在Jframe上正确地对齐和布局了一些东西。基本上我想有这些结果在JFrame里面放置JPanel
图像本身就说明了,但我有当我运行我的代码是这样的。
有两端没有填充,面板是正确的拍击在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成以上
,如果您有任何见解,请做第二图象的构造赐教
答
最简单的方法是在您的JPanel
上设置边框:
listPahel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
答
-
添加EmptyBorders到的JPanel
或
-
空JPanels(4)添加到东,西,北,JFrame的和的JPanel与JScrollPane的南部地区付诸中心区域,则创建间隙在围绕中心区域10pixels
然后
变化的LayoutManager为JPanel的包含JScrollPane的从的FlowLayout(默认在API实现)的borderlayout
正是我需要的扫管笏。容易ang精确 – lemoncodes 2013-03-16 13:01:25
hacking away ;-)硬编码_pixels_总是有问题,在边界像一个大小/位置。更好(imo)使用layoutManager,它允许在dpi相关单元方面进行精细控制... – kleopatra 2013-03-18 11:22:29