如何将图像显示到组件?

时间:2011-09-14 11:09:15

标签: java image swing jpanel bufferedimage

如何使用JPanelJLabelBufferedImage显示图片? 我使用FileChooser加载图像,我需要显示我已加载的内容。 我不会将课程扩展到任何容器。

1 个答案:

答案 0 :(得分:3)

覆盖JPAnel或JLabel的 paintComponents(g) paintComponent(g)方法并在其中绘制图像。如下所示:

    JPanel panel = new JPanel(){
        @Override
        public void paintComponent(Graphics g) {
            BufferedImage image = null; // get your buffered image.
            Graphics2D graphics2d = (Graphics2D) g;
            graphics2d.drawImage(image, 0, 0, null);
            super.paintComponents(g);
        }
    };

JLabel也是如此。或者以另一种方式:

    BufferedImage image = null; // get your buffered image.
    ImageIcon icon = new ImageIcon((Image)image);
    JLabel label = new JLabel();
    label.setIcon(icon);

正如您所说,您正在加载来自FileChooser的图片,可以在以下内容中完成 方式:

    ImageIcon icon = new ImageIcon(
              fileChooser.getCurrentDirectory().toString()
              +"/"+fileChooser.getSelectedFile().getName());

现在您可以在JLabel中使用ImageIcon或在JPanel中添加它。


以上代码是示例代码,未经过测试,因此无需运行且无错误。您可能需要根据需要进行更改。