我試圖在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