如何将图像添加到JPanel?
我有一个JPanel,我想添加我生成的JPEG和PNG图像。
我在Swing教程中看到的所有示例,特别是Swing示例中使用ImageIcon
的示例。
我将这些图像生成为字节数组,并且它们通常比它们在示例中使用的常用图标大640x480。
编辑 :对教程和API的更仔细的检查表明,您不能直接将ImageIcon添加到JPanel。 相反,他们通过将图像设置为JLabel的图标来达到相同的效果。 这只是不正确的...
下面是我如何做到的(有关如何加载图像的更多信息):
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
public class ImagePanel extends JPanel{
private BufferedImage image;
public ImagePanel() {
try {
image = ImageIO.read(new File("image name and path"));
} catch (IOException ex) {
// handle exception...
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, this); // see javadoc for more info on the parameters
}
}
如果您使用的是JPanel,那么可能与Swing合作。 尝试这个:
BufferedImage myPicture = ImageIO.read(new File("path-to-file"));
JLabel picLabel = new JLabel(new ImageIcon(myPicture));
add(picLabel);
图像现在是一个摆动组件。 它像任何其他组件一样受制于布局条件。
我认为不需要任何东西的子类。 只需使用Jlabel。 您可以将图像设置为Jlabel。 所以,调整Jlabel的大小然后用图像填充它。 没关系。 这是我的方式。
链接地址: http://www.djcxy.com/p/88879.html