试图在java中绘制图像

时间:2015-05-18 22:46:21

标签: java swing jlabel paintcomponent

int x = 0;
int y = 0;
Image img;
Screen screen;

GamePanel() {
    setBounds(0, 0, 600, 600);
    setLayout(null);
    setVisible(true);
    setBackground(new Color(100, 0, 0));

    screen = new Screen();
    screen.setBounds(0, 0, 600, 600);
    add(screen);

    img = Toolkit.getDefaultToolkit().createImage("monster.jpg");   
}

public void repaintScreen(){
    screen.repaint();
}

private class Screen extends JLabel{

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        g.setColor(Color.BLACK);
        g.drawRect(10, 10, 100, 100);

        g.drawImage(img, 0, 0, this);
    }   
}

您好我正在尝试绘制图像,但它永远不会有效。我也尝试以不同的方式加载图像,但总是相同。但是有没有警告,所以出现这样的事情。 但是,当我把它作为JLable中的Icon时,它可以工作。

1 个答案:

答案 0 :(得分:0)

final BufferedImage image = ImageIO.read(new file(" C:\ image.png"));

您是否想要绘制到JPanel / JFrame?

https://docs.oracle.com/javase/tutorial/2d/images/

final BufferedImage image = ImageIO.read(new File("C:\image.png"));
GamePanel gamePanel;

 JPanel pane = new JPanel() {
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawImage(image, 0, 0, null);
        }
    };


    gamePanel(or screen).add(pane);
}