【发布时间】:2011-09-14 11:09:14
【问题描述】:
如何使用BufferedImage 向JPanel 或JLabel 显示图像?
我使用FileChooser 加载图像,我需要显示我已加载的内容。
我不会将我的课程扩展到任何容器。
【问题讨论】:
标签: java image swing jpanel bufferedimage
如何使用BufferedImage 向JPanel 或JLabel 显示图像?
我使用FileChooser 加载图像,我需要显示我已加载的内容。
我不会将我的课程扩展到任何容器。
【问题讨论】:
标签: java image swing jpanel bufferedimage
重写 paintComponents(g) paintComponent(g) JPanel 或 JLabel 的方法并在其中绘制图像。如下所示:
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 中添加它。
以上代码是示例代码,未经测试,因此无需无错误地运行。您可能需要根据需要进行更改。
【讨论】:
paintComponents。我不确定paintComponent 是否会产生相同的效果。
paintComponent() 并调用super.paintComponent()。