我正在用java写一个程序图形用户界面。我想要一个JLayeredPane作为我的JFrame的ContentPane。在我的JLayeredPane上有两层:一层是画布(Canvas1),另一层是JPanel(jPanel5)。我使用Netbeans IDE,生成以下代码:
canvas1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
canvas1.setBounds(0, 0, -1, -1);
jLayeredPane1.add(canvas1, javax.swing.JLayeredPane.PALETTE_LAYER);
jPanel5.setBounds(0, 0, 670, 550);
jLayeredPane1.add(jPanel5, javax.swing.JLayeredPane.DEFAULT_LAYER);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 553, Short.MAX_VALUE)
);pack();
当我运行我的程序时,我看到了一个奇怪的事件!当我改变tje JFrame的大小时,主JLayeredPane的大小没有改变。我为组件使用了不同的backGround颜色,很明显,JLayered的大小是永久的,但是我在它的属性中设置了垂直和水平大小。JFrame是可调整大小的,但是主jLayeredPane的大小是permamnet。
如何使jLayeredPane调整为我的JFrame大小?!
谢谢

发布于 2011-02-28 18:23:13
尝试使用默认的BorderLayout,而不是现在使用的GroupLayout。只需注释掉以创建GroupLayout开头的那组行,然后添加以下行:
getContentPane().add(jLayeredPane, BorderLayout.CENTER);.add()方法的BorderLayout.CENTER参数告诉BorderLayout管理器,您希望给定的小部件填充窗口的中心。
发布于 2011-06-15 20:15:08
您可以随JFrame一起更改JLayeredPane。在(NetBeans集成开发环境)设计模式下-右键单击JLayeredPane,然后在弹出菜单中将鼠标悬停在“自动调整大小”上,然后选中垂直和水平。这样,相对于JFrame,JLayeredPane的大小将发生变化。
https://stackoverflow.com/questions/5140573
复制相似问题