загрузка изображения в JPanel - PullRequest
2 голосов
/ 10 октября 2011

У меня есть JPanel (который я создал с использованием netbeans), и мне нужно загрузить в него изображение, основываясь на выборе на предыдущей странице.Кто-нибудь может подсказать, как это сделать.Также JPanel - лучший способ сделать то, что я пытаюсь сделать, или я мог бы сделать что-то еще?

Усилия приветствуются, спасибо !!

Ответы [ 3 ]

3 голосов
/ 10 октября 2011

Самый простой способ отобразить изображение - использовать JLabel и вызвать его метод setIcon (или его конструктор). Значок можно загрузить с помощью одного из конструкторов класса ImageIcon.

См. http://download.oracle.com/javase/tutorial/uiswing/components/label.html для примера.

3 голосов
/ 10 октября 2011

Это пример кода, демонстрирующий, как загрузить изображение в JPanel; background.jpg - это изображение, которое мы загружаем в JPanel. Также обратите внимание, что это изображение должно быть доступно в источнике.

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ImageTest {

    public static void main(String[] args) {
        ImagePanel panel = new ImagePanel(
            new ImageIcon("background.jpg").getImage());

        JFrame frame = new JFrame();
        frame.getContentPane().add(panel);
        frame.pack();
        frame.setVisible(true);
    }
}

class ImagePanel extends JPanel {

    private Image img;

    public ImagePanel(String img) {
        this(new ImageIcon(img).getImage());
    }

    public ImagePanel(Image img) {
        this.img = img;
        Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
        setPreferredSize(size);
        setMinimumSize(size);
        setMaximumSize(size);
        setSize(size);
        setLayout(null);
    }

    public void paintComponent(Graphics g) {
        g.drawImage(img, 0, 0, null);
    }
}
3 голосов
/ 10 октября 2011

Существует несколько способов read/load изображений в Java. Взгляните на этот учебник.

...