gpt4 book ai didi

java - 如何在 JFrame 中实现 .png 图片?

转载 作者:行者123 更新时间:2023-12-01 18:14:00 24 4
gpt4 key购买 nike

嗨,我想制作一个窗口,一个 GUI,并在其中放置一个图像。

我观看了 YT 教程 ( https://www.youtube.com/watch?v=Ap20Qw77TzY ) 并复制了所有类似内容,但我制作的窗口根本没有图像。我尝试了不同的文件类型(例如 .jpg)和不同的窗口大小,以匹配图片大小,但没有帮助。

这是我的代码,除了警告之外,我没有收到真正的错误:

The serializable class main does not declare a static final serialVersionUID field of type long,line 8

This method has a constructor,line 25

代码

package main;

import java.awt.Graphics;
import java.awt.Toolkit;

import javax.swing.*;

public class main extends JFrame {
/**
* author jan
*/
public main(String title){
super (title);

}

public void paint(Graphics gr) {
super.paint(gr);


gr.drawImage(Toolkit.getDefaultToolkit().getImage("Koppenhagen\\Pictures\\Herz.png"), 0, 0, this);
}


public static void main(String[] args) {

main window = new main("Mein Test!");

window.setSize(160,160);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);

}
}

最佳答案

  1. 使用ImageIO.read超过Toolkit.getImage ,它会抛出 IOException由于某种原因无法加载图像
  2. 检查图像的位置。您的示例正在查找 Koppenhagen\\Pictures 中的文件,相对于程序的执行上下文。您可以使用File#exists检查文件是否确实存在于您认为的位置
  3. 不要加载任何 paint 内的资源方法,加载图像可能需要时间,并且绘画应该尽可能快地运行
  4. 我不鼓励您覆盖顶级容器的油漆,例如 JFrame 。一个JFrame包含 JRootPane ,除其他外,其中包含 contentPane所有这些都可以独立于其父容器进行绘制。相反,从 JPanel 开始并覆盖其 paintComponent方法,然后将其添加到 JFrame 的实例中

关于java - 如何在 JFrame 中实现 .png 图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854034/

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