Как нарисовать изображение в JFrame? - PullRequest
1 голос
/ 07 апреля 2019

Я пытаюсь поместить изображение в JFrame. В приведенном ниже коде я создаю прямоугольник 1020 на 720, и я хотел бы поместить изображение в этот прямоугольник.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;


import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JPanel;


public class Screen extends JFrame
{
    private BufferedImage image;
    public Screen () {   
        super("DVD Screensaver");

        Container container = getContentPane(); 
        setSize(1020, 720);   
        setVisible(true);

    }

    public void paint(Graphics g)  {
        int windowHorizantal = 0, windowVerticle = 0;
        windowHorizantal = 1020;
        windowVerticle = 720;

        g.setColor(Color.BLACK);

        g.fillRect(1, 1, windowHorizantal, windowVerticle);
        try {                
          image = ImageIO.read(getClass().getResource("dvd.png"));
        } catch (IOException ex) {
             ex.printStackTrace();
        }

        g.drawImage(image, 50, 50, null);
    }

    public static void main(String[] args) {

        Screen prog = new Screen ();
        prog.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
}

Когда я запускаю этот код, я получаю эту ошибку: "Исключение в потоке" AWT-EventQueue-0 "java.lang.IllegalArgumentException: input == null!", Но оно действительно рисует черный прямоугольник. Я также не могу проверить, действительно ли код читает мое изображение (dvd.png).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...