如何在Netbeans GUI Builder中根据父JLabel的大小自动缩放图像的大小?

如何在Netbeans GUI Builder中根据父JLabel的大小自动缩放图像的大小?,第1张

如何在Netbeans GUI Builder中根据父JLabel的大小自动缩放图像的大小?

“或者是否有一种方法可以完全禁用窗口的大小。”

您可以将框架的可调整大小属性设置为false。从NetBeans GUI
Builder

从设计视图或导航器窗口中突出显示/选择框架组件。
转到右侧的属性窗口,查找属性resizable并确保未选中
“我还想确保
当我更改
窗口的大小时,图像大小,其父级JLabel的大小,JPanel的大小都将根据框架进行调整”

一种方法是将背景绘制到背景面板上,而不是使用
带有图标的标签。您可以
在此处查看示例。对于GUI Builder,
最简单的方法(无需编辑自动生成的代码
,如果您不知道自己在做什么,我不建议这样做)是使用JPanel表单
而不是Jframe表单。在JPanel表单上绘画,然后可以将该
JPanel表单添加到Jframe表单中。您可以
在此处看到将表单添加
到JPanel表单的简便方法Jframe。

请参阅表演自定义绘画以了解有关绘画的更多信息

也可以看看这个StretchIcon,你可以用一个标签使用。

更新

所以您的JPanel表单类最终将看起来像这样


UPDATE

So your

JPanel
form 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); }        });    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5507317.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存