JAVA SE swing 怎么在界面上显示图片? 用URL对象封装这个地址,然后用openStream方法获得网络流读取图片数据。接着你在用swing组件的的g2d对象把这个图画出来。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ImageIO.read(new URL("http://localhost/code.jsp")使用自己的没问题。但是使用楼主的URL就是不能读,很奇怪。 public class ImageTest { public static void main(String[] args) { ImagePanel panel = new ImagePanel(new ImageIcon("images/background.png").getImage()); JFrame frame = new JFrame("Hack #1: Create Image-Themed Components"); frame.getContentPane().add(panel); frame.pack(); frame.setVisible(true); } } public class ImageLabel extends JLabel { public ImageLabel(ImageIcon icon) { setSize(icon.getImage().getWidth(null), icon.getImage().getHeight(null)); setIcon(icon); setIconTextGap(0); setBorder(null); setText(null); setOpaque(false); } } ImageLabel label = new ImageLabel(new ImageIcon("images/reactor.png")); label.setLocation(29,37); panel.add(label); Graphics g = Graphics.FromImage(bitmap);// 获取图片 import java.awt.Container;import java.awt.FlowLayout;import java.awt.image.BufferedImage;import java.io.InputStream;import java.net.URL;import javax.imageio.ImageIO;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;public class TestImagePanel { public static void main(String[] args){ JFrame frame = new JFrame("Test Image Panel"); JLabel lbl = new JLabel(); BufferedImage image = null; try { URL imageURL = new URL("http://ptlogin2.qq.com/getimage"); InputStream is = imageURL.openConnection().getInputStream(); System.out.println(); image = ImageIO.read(is); System.out.println("image is:"+image); } catch (Exception e) { e.printStackTrace(); } Container c= frame.getContentPane(); c.setLayout(new FlowLayout()); c.add(lbl);lbl.setIcon(new ImageIcon(image)); frame.setBounds(200,100,300,200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }} InputStream is = imageURL.openConnection().getInputStream();改成这样Connection httpCon = imageURL.openConnection();InputStream is = httpCon.getInputStream();...image = ImageIO.read(is);httpCon.close(); 每秒300次请求的服务端,线程池的池中线程最大个数设置多少个比较合理 跪求,截取算法... tomcat自动关闭 出现EXCEPTION_ACCESS_VIOLATION 怎么解决? Finally 之后的语句 关于Java调用其他应用程序的问题 求助:一个拼图游戏的图形显示问题 60分 有关求最大的两个数值的问题 运行 java3d demo 他说没有驱动 如何发布自己编写的包? 帮帮初学者 怎样得到某一天是星期几 关于读取文件 小困惑
使用自己的没问题。
但是使用楼主的URL就是不能读,很奇怪。
ImagePanel panel = new ImagePanel(new
ImageIcon("images/background.png").getImage()); JFrame frame = new JFrame("Hack #1: Create Image-Themed Components");
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true); }
}
setSize(icon.getImage().getWidth(null),
icon.getImage().getHeight(null));
setIcon(icon);
setIconTextGap(0);
setBorder(null);
setText(null);
setOpaque(false);
} }
label.setLocation(29,37);
panel.add(label);
import java.awt.FlowLayout;
import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.net.URL;import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;public class TestImagePanel {
public static void main(String[] args){
JFrame frame = new JFrame("Test Image Panel");
JLabel lbl = new JLabel();
BufferedImage image = null;
try {
URL imageURL = new URL("http://ptlogin2.qq.com/getimage");
InputStream is = imageURL.openConnection().getInputStream();
System.out.println();
image = ImageIO.read(is);
System.out.println("image is:"+image);
} catch (Exception e) {
e.printStackTrace();
}
Container c= frame.getContentPane();
c.setLayout(new FlowLayout());
c.add(lbl);lbl.setIcon(new ImageIcon(image));
frame.setBounds(200,100,300,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
改成这样
Connection httpCon = imageURL.openConnection();
InputStream is = httpCon.getInputStream();
...
image = ImageIO.read(is);
httpCon.close();