如何使用 BufferedImage
将图像显示到 JPanel
或 JLabel
?
我使用 FileChooser
加载图像,并且需要显示已加载的内容。
我不会将我的类扩展到任何容器。
最佳答案
重写 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 中。
以上代码是示例代码,未经测试,因此不必运行无错误。您可能需要根据需要更改它。
关于java - 如何向组件显示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7415335/