我试图在JPanel
上绘制.png
。我使用ImageIcon
构造函数将其导入,并将其绘制在我的自定义面板的paintComponent
中。ImageIcon.paintIcon不会在JPanel上绘制图像
我sscce:
package mypackage;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyPanel extends JPanel {
static JFrame frame;
static MyPanel panel;
static ImageIcon icon;
public static void main(String[] args) {
icon = new ImageIcon(MyPanel.class.getResource("MyImage.png"));
frame = new JFrame();
panel = new MyPanel();
frame.setSize(500, 500);
frame.add(panel);
frame.setVisible(true);
frame.repaint();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
icon.paintIcon(panel, g, 100, 100);
}
}
我预想的形象,这仅仅是在白色背景上一对夫妇的形状,在(100, 100)
面板上显示。相反,一个空白屏幕:
没有发生错误的事实意味着该程序正确查找文件。
的形象在我的Eclipse项目在同一个包中的类:
这究竟是为什么?我如何解决它?
不要建立在你的paintComponent方法的ImageIcon。也可以尝试在面板中绘制一个圆圈或其他东西。 – matt
@matt将'icon = new ImageIcon(MyPanel.class.getResource(“MyImage.png”));'移到'main'并在'main'上面添加'静态ImageIcon图标'并不能解决问题。 – snickers10m
@matt此外,添加'((Graphics2D)g).draw(新的Ellipse2D.Double(100,100,100,100));''paintComponent'成功绘制一个圆圈。 – snickers10m