изображение не отображается в кадре Java - PullRequest
1 голос
/ 25 мая 2011

пытаясь научиться программировать на windows в Java, хочу отобразить изображение во фрейме. Вот код проблемы:

public static void main(String[] args) throws IOException {
        JFrame frame = new JFrame("hello world");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(200,200);
        Graphics graph = frame.getGraphics();

        BufferedImage image = ImageIO.read(new File("data/image.jpg"));
        graph.drawImage(image, 0,0,frame);
        frame.pack();
        frame.setVisible(true);

    }

Я видел несколько успешных примеров, которые подклассируют класс Component и вызывают Graphics.Метод DrawImage в методе рисования.почему вы должны это сделать, вы не можете просто взять объект Graphics, связанный с рамкой, и нарисовать изображение напрямую?

Ответы [ 2 ]

4 голосов
/ 25 мая 2011

Вы не можете, потому что это не так, как работает Swing.Во-первых, рисование должно выполняться по EDT , и предпочтительным способом достижения этого является переопределение метода paintComponent(..).Прямое рисование так, как вы себе представляете, возможно при использовании в полноэкранном режиме .

3 голосов
/ 26 мая 2011

Нет необходимости настраивать живопись, чтобы показать изображение.См. Как использовать иконки .

Учебное пособие также содержит раздел «Пользовательская живопись».

...