“或者是否有一种方法可以完全禁用窗口的大小。”
您可以将框架的可调整大小属性设置为false。从NetBeans GUI
Builder
从设计视图或导航器窗口中突出显示/选择框架组件。
转到右侧的属性窗口,查找属性resizable并确保未选中
“我还想确保
当我更改
窗口的大小时,图像大小,其父级JLabel的大小,JPanel的大小都将根据框架进行调整”
一种方法是将背景绘制到背景面板上,而不是使用
带有图标的标签。您可以
在此处查看示例。对于GUI Builder,
最简单的方法(无需编辑自动生成的代码
,如果您不知道自己在做什么,我不建议这样做)是使用JPanel表单
而不是Jframe表单。在JPanel表单上绘画,然后可以将该
JPanel表单添加到Jframe表单中。您可以
在此处看到将表单添加
到JPanel表单的简便方法Jframe。
请参阅表演自定义绘画以了解有关绘画的更多信息
也可以看看这个StretchIcon,你可以用一个标签使用。
更新
所以您的JPanel表单类最终将看起来像这样
UPDATE
So your
JPanelform class will ultimately look something like this
public class PanelForm extends javax.swing.JPanel { private BufferedImage image; public PanelForm() { try { image = ImageIO.read(getClass().getResource("/path/to/image/png")); } catch (IOException ex) { ex.printStackTrace(); } } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, getWidth(), getHeight(), this); } @Override public Dimension getPreferredSize() { return new Dimension(500, 500); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable(){ public void run() { Jframe frame = new Jframe(); frame.add(new PanelForm()); // <--- add it here frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)