gpt4 book ai didi

java - 将图像加载到小程序中的 JPanel

转载 作者:行者123 更新时间:2023-11-29 03:33:54 24 4
gpt4 key购买 nike

基于此线程:Java: Load image from file, edit and add to JPanel我试图将 na 图像加载到 JPanel 中,但它没有绘制它,所以这就是交易,正如建议的那样,我创建了一个名为 JImageComponent 的新类文件,它从 JComponent 扩展而来,看起来像这样:

package in.co.sneh;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JComponent;
private BufferedImage img;
public class JImageComponent extends JComponent
{
public JImageComponent (BufferedImage bi)
{
img = bi;
}

@Override
public void paintComponent(Graphics g)
{
g.drawImage(img, 0, 0, this);
}
}

然后在小程序表单类中,当我单击加载图片按钮时,执行的操作如下所示:

JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int retVal = chooser.showDialog(AppletForm.this, "Attach");
if (retVal == JFileChooser.APPROVE_OPTION) {
picFile = chooser.getSelectedFile();
try {

image = ImageIO.read(picFile);
JImageComponent jcomp = new JImageComponent(image);
Graphics2D g = image.createGraphics();
jcomp.paintComponents(g);
// Draw here on the graphics
//g.dispose();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
jPanel6.add(jcomp);
System.out.println("Testing" + picFile);



} catch (IOException e) {

e.printStackTrace();
}

对我来说一切都已就绪,但是在文件资源管理器中选择图像时图像没有显示,有人可以帮我吗?提前致谢,罗慕洛·罗梅罗

最佳答案

向容器中添加新组件后,需要调用

jPanel6.revalidate();
jPanel6.repaint();

此外,小程序无法从本地文件系统加载资源,除非它们已签名

注意:虽然只有一个 JImageComponent 会更好,但是 JLabel 组件已经提供了使用 setIcon 切换图像的功能。 .

关于java - 将图像加载到小程序中的 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16529385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com