【发布时间】:2021-10-23 06:27:47
【问题描述】:
我正在开发一款类似 Pokemon 卡片的数字游戏。当我尝试绘制任何图像时,JFrame 仍然为空。这可能是一个简单的错误,但我一直无法找到解决方案。在 Stack Overflow 上,我看到了很多类似我的问题,尽管他们的解决方案不适用于我的代码。这是代码: JFrame 的类:
import javax.swing.JFrame;
public class Rocks extends JFrame{
public Rocks(){
setVisible(true);
setTitle("Rocks Card Game");
setSize(1200,297);
add(new Display());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Rocks();
}
}
JPanel 类:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class Display extends JPanel{
Image granite;
public Display(){
granite = new ImageIcon("C:\\Users\\Raj\\Pictures\\Granite.png").getImage();
setBackground(Color.black);
}
public void paint(Graphics g){
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(granite,0,0,null);
}
}
【问题讨论】:
-
不需要自定义绘画。只需使用带有图标的 JLabel。
-
很高兴你把它整理好了。 :)
标签: java swing awt paint event-dispatch-thread