@Elfino48

Как вывести изображение на JFrame?

Здравствуйте! Помогите непутевому вывести изображение на панель ( в данном случае на фрейм ). Да, я умею гуглить, искал везде, и находил, но код почему то не хочет работать ( изображение не выводится на экран ). Вот один из примеров кода:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main extends JPanel{
	
	Image img = new ImageIcon("/images/butt.png").getImage();
	
	public static void main(String[] args){
		JFrame fr = new JFrame();
		fr.setSize(500,500);
		fr.setVisible(true);
		fr.add(new Main());
	}
	public void paintComponent(Graphics g){
		g.drawImage(img, 0, 0, null);
	}	
}
  • Вопрос задан
  • 6351 просмотр
Решения вопроса 1
@zelan
Кратко обо мне не получится.
У вас панель которую вы добавляете на фрейм имеет нулевые размеры, не забывайте.

Сделайте так.
JFrame fr = new JFrame();
//устанавливаем абсолюбтное позиционирование на фрейме
fr.setLayout(null);
fr.setSize(500,500);

Main m = new Main();
//устанавливаем размеры и координаты компонента для размещения в родителя с абсолютным позиционированием
m.setBounds(0,0,500,500);
fr.add(m);

//обязательная вещь, говорит о том что когда ты закроешь окно - и приложение тоже должно закрыться, если этого не сделать, то после закрытия окна приложение продолжит работу и будет висеть в памяти
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setVisible(true);


Если есть возможность не пользуйся свингом а сразу иди на JavaFX
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zolt85
@zolt85
Программист
public void paintComponent(Graphics g){
    g.drawImage(img, 0, 0, null);
  }


чую нужно где-то этот кусок кода вызвать ...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы