2015-04-07 3 views
0

Я пытаюсь получить изображение .jpg для рисования на экране с использованием метода drawImage(), но он не будет рисовать. Вот код:drawImage() не рисует изображение

public void paint(Graphics g) { 
     Image image = new ImageIcon("tictactoeimg.jpg").getImage(); 
     g.drawImage(image, 0, 0, this); 
} 

Файл .jpg находится в папке src с классом. Как я могу исправить это, чтобы он нарисовал изображение?

ответ

4
  1. на заказ картина делается путем переопределения метода paintComponent()
  2. Не делать ввода/вывода в методе окраски. Методы живописи предназначены для живописи.
  3. Переопределить метод компонента, возвращающий размер компонента, иначе размер (0, 0) и рисовать нечего.

Для получения дополнительной информации ознакомьтесь с разделом из учебника Swing по телефону Custom Painting.

Однако, реальный вопрос - почему вы пытаетесь использовать drawImage. Вы можете просто использовать JLabel с Icon. В учебнике также есть раздел о How to Use Icons, который содержит рабочий пример.

+0

согласны с тем, что не выполняются операции ввода-вывода в методе рисования, но если ввод-вывод выполняется в другом месте, и изображение проверено, чтобы быть готовым, почему бы не сделать обычную покраску с помощью метода рисования? 'paintComponent' выглядит как скачок от первоначального намерения вопроса. Если вы расширяете [Canvas] (http://docs.oracle.com/javase/7/docs/api/java/awt/Canvas.html), например, вам нужно переопределить 'paint'. – Atreys

+1

@Atreys, Canvas AWT и да, вы бы переопределили paint(). Swing рисует по-разному, а 'paintComponent()' является правильным методом для переопределения. Прочтите учебник. – camickr

Смежные вопросы