[Java教程]Java中显示图片的方法

0 2017-02-21 00:00:51

最近在做一个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文件运行时,居然不能显示图片,然后果断放弃了。

写代码就是不断遇到问题,然后不断解决问题,再总结转化为自己的经验,每解决一个问题就觉得好有成就感。

本文网址:http://www.shaoqun.com/a/302108.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

JAVA

0

java中怎样显示图片_[Java教程]Java中显示图片的方法相关推荐

  1. css如何保留空格,HTML/CSS中的空格处理_如何保留页面中的空格

    html中的空格的规则 在html中内容中的多个空格一般会被视为一个,连续的多个空格符被自动合并了.同时内容前后的空格也会被清除, 如下: fly63 com 显示效果为: fly63 com 备注: ...

  2. amp jsp空格 nps_HTML/CSS中的空格处理\_如何保留页面中的空格【转】

    HTML/CSS中的空格处理\_如何保留页面中的空格[转] HTML中的空格的规则 在html中内容中的多个空格一般会被视为一个,连续的多个空格符被自动合并了.同时内容前后的空格也会被清除, 如下: ...

  3. .Net 6.0中的新增特性_.Net 6.0中的新增功能

    .Net 6.0中的新增特性_.Net 6.0中的新增功能 一..Net 6 介绍 .NET 6 作为 LTS 长期支持版本,.NET 6 将会获得 3 年的技术支持. .NET 6 是首个原生支持 ...

  4. Java接受blob类型图片_原生JS上传图片接收服务器端图片并且显示图片(主要描述blob类型)...

    1.了解后端处理图像的方式 一:图片以独立文件的形式存储在服务器的指定文件夹中,再将路径存入数据库字段中 二:将图片转换成blob,直接存储到数据库的 Image 类型字段中(这种方式负担很大不建议使 ...

  5. java显示公式_如何让Excel中只显示公式不计算

    这个是由来已久的问题,但是由于Office安装的时候是显示公式计算结果,并且自动更新的,所以当表格中出现了只显示公式,而不显示计算结果的时候,往往让人手足无措了.在最近的学员中就出现了几个这样的情况, ...

  6. java中注解的解析_全面解析Java中的注解与注释

    注解一.什么是 Annotation? (注解 or 注释)Annotation, 准确的翻译应该是 -- 注解. 和注释的作用完全不一样. Annotation 是JDK5.0及以后版本引入的一个特 ...

  7. java字符串字符排列组合_如何在Java中查找字符串的所有排列

    java字符串字符排列组合 In this tutorial, we will learn how to find the permutation of a String in a Java Prog ...

  8. java中static修饰函数_详解java中static关键词的作用

    在java中,static是一个修饰符,用于修饰类的成员方法.类的成员变量,另外可以编写static代码块来优化程序性能:被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载 ...

  9. java如何在窗口上显示数据_如何把Java程序窗口在屏幕中间显示

    摘要:这篇Java开发技术栏目下的"如何把Java程序窗口在屏幕中间显示",介绍的技术点是"Java程序.屏幕中间.Java.显示.窗口.中间",希望对大家开发 ...

  10. java 更改excel文件名称_根据Excel文件中的内容,修改指定文件夹下的文件名称

    问题:根据Excel文件中内容,把文件名称由第2列,改为第1列.比如:把文件"123.jpg"修改为"1.jpg". aaarticlea/png;base64 ...

最新文章

  1. cruzer php sandisk 闪迪u盘量产工具_SanDisk Cruzer Micro下载
  2. final修饰的是引用还是引用的对象
  3. SpringBoot源码笔记分析
  4. 然爸读书笔记(2014-2)----影响力
  5. centos 6安装报错
  6. 将 Citavi 笔记按需要导出
  7. ubuntu下android源码编译环境,ubuntu12.04 64位上搭建android源码编译环境
  8. mysql保存时乱码了_MySQL保存中文乱码的原因和解决办法
  9. MySQL 日期时间类型
  10. 当世界从移动优先变为AI优先,未来企业竞争将赢在“维度”
  11. Datawhale数据挖掘项目之task2
  12. Android:ViewPager
  13. #简单统计学#加权平均数
  14. 正则表达式匹配html标签
  15. SEO人员,你真的要做一个采集侠吗?
  16. 边做边学入门微信小程序之仿豆瓣评分
  17. UI设计师未来的发展趋势
  18. 不是公网ip怎么搭建服务器
  19. 接入支付宝小程序能力,人人租机实现从 0-100 增长
  20. 计算机网络与互联网(二)

热门文章

  1. 使用fastcoll生成字符串MD5碰撞
  2. 傻白入门芯片设计,Substrate/RDL/Interposer/EMIB/TSV(三)
  3. rdl报表 mysql_SSRS报表服务随笔(rdl报表服务)-报表参数
  4. 教育部计算机考研大纲,2021考研计算机大纲计算机网络部分考查内容
  5. SystemVerilog学习笔记7——覆盖率
  6. vs2017 错误:当前页面的脚本发生错误
  7. Linux运维工程师必备工具合集
  8. 顺丰全栈资源下的自动化运维灵魂
  9. Linux 查看磁盘空间命令
  10. nulls first和nulls last