gpt4 book ai didi

java - 小程序的背景图像和填写小程序

转载 作者:行者123 更新时间:2023-12-02 06:37:40 27 4
gpt4 key购买 nike

我正在将图像设置为 JApplet 的背景,并使用调整大小方法将图像填充到 JApplet 背景中。我目前正在使用

Image background;
public void paint(Graphics g) {
super.paint(g);
g.drawImage(background, 0, 0, this);
}

public void init() {
// TODO start asynchronous download of heavy resources
background=resize(new ImageIcon(getClass().getResource("/org/me/pd/resources/music.png")),this.getWidth(),this.getHeight()).getImage();
this.setLayout(new GridLayout(6,6));
//Create();
}

这是我的调整大小方法

public ImageIcon resize(ImageIcon icon, int width, int height)
{
BufferedImage converted = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics g = converted.createGraphics();
icon.paintIcon(null, g, 0,0);
g.dispose();
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TRANSLUCENT);
Graphics2D g2d = (Graphics2D) bi.createGraphics();
g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY));
g2d.drawImage(converted, 0, 0, width, height, null);
g2d.dispose();
ImageIcon correct=new ImageIcon(bi);
return correct;
}

这最初在小程序加载并填充图像时起作用,但是当小程序最大化时,图像不会随小程序一起最大化。它显示了最大化之前的状态。

我做错了什么?

最佳答案

无需重新缩放图标。

相反,您只需让绘画方法为您完成此操作即可:

g.drawImage(image, 0, 0, getWidth(), getHeight(), this);

但是,您不应该通过重写小程序的 Paint() 方法来执行此操作。

相反,您应该重写 JPanel 的 PaintComponent() 方法并将面板添加到您的小程序中。然后您的 Pane 将成为小程序的内容 Pane 。然后,您可以将面板的布局设置为 BorderLayout,以便其行为与默认内容 Pane 完全相同。

关于java - 小程序的背景图像和填写小程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19470699/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com