Для вывода изображения на панели, переопределить метод paintComponent(Graphics)
и сделать его там:
public class ImagePanel extends JPanel {
private Image image;
public void setImage (Image image) {
this.image = image;
revalidate();
repaint();
}
@Override
protected void paintComponent (Graphics g) {
super.paintComponent(g);
if (image != null)
g.drawImage(image, 0, 0, this);
}
}
вы должны переопределить метод GetPreferredSize(), чтобы выставить как большое изображение компонент должен быть (будет использоваться менеджером компоновки родительского контейнера):
@Override
public Dimension getPreferredSize() {
if (image == null) {
return super.getPreferredSize();
}
Insets insets = getInsets();
return new Dimension(image.getWidth(this) + insets.left + insets.right, image.getHeight(this) + insets.top + insets.bottom);
}
Редактировать:JLabel
(как указано в других ответах) отлично подходит для отображения простых изображений или значков, но когда вам нужны расширенные функции, такие как автоматическое масштабирование (уменьшение или уменьшение пропорций), черепица (x, y, both) для этого обычно лучше создать для него специализированный класс панели изображений.
_ потому что у меня сейчас нет интернета. Как вы здесь написали этот вопрос? – BackSlash
Отправлено на телефон, @BackSlash. – eatonphil
Пожалуйста, посмотрите на этот ответ, чтобы [загрузить изображение] (http://stackoverflow.com/a/9866659/1057230), хотя если вы делаете это вручную (без использования каких-либо IDE), тогда этот [ответ] (http://stackoverflow.com/a/11372350/1057230), несомненно, поможет вам :-) –