java展示图片_Java中显示图片的方法
最近在做一个swing小项目,其中需要把存储在硬盘中的图片文件显示出来,总结了如下方法:
1.
Graphics g = getGraphics();
String name = "E:/CapabilityModel/out.gif";
Image img = Toolkit.getDefaultToolkit().getImage(name);
g.drawImage(img, 538, 408,585,305, null);
g.dispose();
这种方法是在界面上选取一定空间来显示图片,不能自动匹配图片大小,如果图片过大,则会产生图片较模糊,而且不能根据图片文件的内容更改来实时更新显示图片,示例图如下:
2.
JLabel imgLabel = new JLabel(new ImageIcon("D:/AGVsModel/temp/out.gif"));
setTitle("ShowImage");
JPanel cp = (JPanel) this.getContentPane();
JPanel imgPanel = new JPanel();
imgPanel.add(imgLabel);
cp.add(imgPanel, BorderLayout.CENTER);
this.setSize(950,320);
this.setVisible(true);
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
这种方法是以弹出一个对话框来显示图片,但也不能根据图片文件的内容更改来实时显示图片,后来百度,把第一行代码改为:
JLabel imgLabel=null;
try {
imgLabel = new JLabel(new ImageIcon(ImageIO.read(new File("E:/CapabilityModel/out.gif"))));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这样就达到了我想要的结果了,嘻嘻。。。示例图如下:
3.
protected Shell shell;
public static Display myDisplay;
public static boolean internalCall = false;
/**
* Open the window.
*/
public void open() {
Display display = Display.getDefault();
createContents(myDisplay);
Image img = new Image(display, "E:/CapabilityModel/out.gif");
shell.open();
center(display,shell);
GC gc = new GC(shell);
gc.drawImage(img, 0, 0);
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
img.dispose();
if (internalCall) display.dispose();
}
/**
* Create contents of the window.
*/
protected void createContents(Display display) {
myDisplay = display;
shell = new Shell();
shell.setSize(900, 400);
shell.setText("Show Image");
}
public static void center(Display display, Shell shell)
{
Rectangle bounds = display.getPrimaryMonitor().getBounds();
Rectangle rect = shell.getBounds();
int x = bounds.x + (bounds.width - rect.width) / 2;
int y = bounds.y + (bounds.height - rect.height) / 2;
shell.setLocation(x, y);
}
本来挺中意这种方法的,可以实时更新显示图片,但弹出框总是显示在界面的后面,而且将项目导出成jar文件运行时,居然不能显示图片,然后果断放弃了。
写代码就是不断遇到问题,然后不断解决问题,再总结转化为自己的经验,每解决一个问题就觉得好有成就感。
未经允许,不可转载!
java展示图片_Java中显示图片的方法相关推荐
- java如何重写_java中如何重写一个方法
方法的重写: 1.在子类中可以根据需要对从基类中继承来的方法进行重写. 2.重写的方法和被重写的方法必须具有相同方法名称.参数列表和返回类型. 3.重写方法不能使用比被重写的方法更严格的访问权限. 在 ...
- java同步关键字_Java中synchronized关键字修饰方法同步的用法详解
Java的最基本的同步方式,即使用synchronized关键字来控制一个方法的并发访问. 每一个用synchronized关键字声明的方法都是临界区.在Java中,同一个对象的临界区,在同一时间只有 ...
- java.equal例子_Java中的== 和equals()方法详解与实例
Java中的== 和equals()方法: Java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型. byte,short,char,int,long,float,double,boo ...
- java wait 参数_java中wait()和join()方法的区别是什么
java中wait()和join()方法的区别是:存在不同的java包中:wait()方法用于线程间通信,它所施加的等待状态的线程可以被启动:join()方法用于在多个线程之间添加排序,它所施加的等待 ...
- java 结束循环_java中结束循环的方法
java中结束循环的方法 发布时间:2020-06-25 11:31:06 来源:亿速云 阅读:180 作者:Leah 这篇文章将为大家详细讲解有关java中结束循环的方法,小编觉得挺实用的,因此分享 ...
- java 空白图片_java applet 显示图片 一片空白 ??
代码:importjava.applet.Applet;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.event.MouseE ...
- java securerandom使用_Java中的SecureRandom nextBytes()方法
用户指定的随机字节数可以使用nextBytes()类java.security.SecureRandom中的方法获得.该方法需要一个参数,即一个随机字节数组,它返回用户指定的随机字节. 演示此的程序如 ...
- java 释放一个对象_JAVA中销毁一个对象的方法
方法一:垃圾回收器 垃圾回收器是Java平台中用的最频繁的一种对象销毁方法.垃圾回收器会全程侦测Java应用程序的运行情况.当反先有些对象成为垃圾时,垃圾回收器就会销毁这些对象,并释放这些对象所占用的 ...
- java listfiles 使用_Java中list()和listFiles()方法之间的区别
java.io包的名为File的类表示系统中的文件或目录(路径名).为了获得目录中所有现有文件的列表,此类提供了list()和ListFiles()方法. 它们之间的主要区别是该列表()方法返回一个字 ...
- java map大小_Java中HashMap的size()方法: HashMap.size() - Break易站
Java中的HashMap HashMap类的java.util.HashMap.size()方法用于获取哈希映射HashMap中映射的大小,该映射引用Map中键值对或映射的数量. 句法: Hash_ ...
最新文章
- Java解析SQL记录为JSON_Oracle解析复杂json的方法
- Codeforces 947E Perpetual Subtraction (线性代数、矩阵对角化、DP)
- python用format保留三位小数_关于Python 保留小数使用format、%、round()、Decimal函数及format和%只能保留到六位问题...
- hdu 2602 Bone Collector(01背包)
- 自定义dialog弹窗html,自定义H5页面dialog弹窗
- 【Java】JDBC连接MySQL/SQLServer/Oracle三种数据库
- vue兄弟组件之间的传值,bus运用,beforeDestroy销毁,Bus.$off
- 轮询调度算法 Round Robin
- Mac source环境变量配置
- 电脑鼠标右键菜单太多了怎么办?Windows右键菜单设置删除方法介绍
- 腾讯云短信申请与使用
- 强化学习(一):Q-learning,附源码解读
- 对象存储(云存储)概述
- 数学之路-python计算实战(4)-Lempel-Ziv压缩(2)
- MySql InnoDB与MyISAM的区别
- 单因素方差分析(ANOVA)及其Python库
- 优漫动游今年流行什么UI配色
- 監獄脱出少女 Lie
- 手动解决浏览器主页被劫持的问题
- 【设计模式】享元(Flyweight)模式实例
热门文章
- Portal是什么东东
- 查询一个表中的两个字段值相同的数据
- 关于Spring Boot报错:LoggerFactory is not a Logback LoggerContext but Logback is on the classpath
- 不喜欢学计算机专业怎么办,录取到不喜欢的专业怎么办?说说我有所不同的“转系生活”...
- 电脑调节,电脑调节亮度怎么调
- WTL 自绘控件库 (CQsCheckBox)
- wordpress插件选择_如何选择2020年最好的WordPress托管(已比较)
- 数字基础设施可视化管理,任重而道远
- 生理自我、社会自我、心理自我的提出者,是詹姆斯还是奥尔波特?|小白心理-312/347考研答疑
- hdu 1864 最大报销额