我已经在这里呆了好几个小时了,而且我很难过。我有这个代码,它在JFrame中添加了一个JPanel,问题是当我将Frame设置为Free Design
时,它不会显示在Frame中。当我将帧设置为Border Layout
时,代码工作正常。我想要做的就是让它与Free Design
一起工作,我可以根据需要放置和调整JPanel的大小。以下是将它放入Frame中的代码。把JPanel放在JFrame里面
canvas = new Canvas();
canvas.setVisible(true);
canvas.setImage(file);
GroupLayout canvasLayout = new GroupLayout(canvas);
canvas.setLayout(canvasLayout);
canvas.setPreferredSize(new Dimension(100, 100));
//canvas.setSize(200,200);
//canvas.setPreferredSize(null);
add(canvas);
revalidate();
当我使用免费设计模式时,我错过了什么?下面是构建布局代码:
private void initComponents() {
jInternalFrame1 = new javax.swing.JInternalFrame();
jInternalFrame1.setVisible(true);
javax.swing.GroupLayout jInternalFrame1Layout = new javax.swing.GroupLayout(jInternalFrame1.getContentPane());
jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout);
jInternalFrame1Layout.setHorizontalGroup(
jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jInternalFrame1Layout.setVerticalGroup(
jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("PocketShop");
setName("main");
pack();
}
您需要为组布局管理器提供约束条件,以便知道组件布局的位置和方式。看看[如何使用GroupLayout](http://docs.oracle.com/javase/tutorial/uiswing/layout/group.html) - 注意,“GroupLayout”旨在被表单设计师使用, t代表手工编码;) – MadProgrammer