- 浏览: 1116385 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (349)
- javascript (28)
- objective-c&cocos2d (46)
- 开发备忘及常用java代码 (46)
- core java7学习笔记 (13)
- Mina (7)
- HTML5 (13)
- 系统集成项目管理工程师学习笔记 (10)
- 数据库系统原理学习笔记 (11)
- C++学习笔记 (10)
- C语言学习笔记 (5)
- 数据结构学习笔记 (4)
- 计算机网络原理学习笔记 (3)
- 计算机组成原理学习笔记 (2)
- 软件工程学习笔记 (6)
- 开发工具 (15)
- OSGI学习 (1)
- 学习笔记 (19)
- oracle (3)
- java tv (1)
- web server (5)
- javafx (1)
- 随笔 (8)
- 梦舞集 (4)
- 工作流 (3)
- 程序错误记录 (6)
- Windows (2)
- Linux (4)
- Git (1)
- 企业管理 (2)
- android (1)
- JVM (17)
- box2dweb (1)
- 操作系统学习笔记 (6)
- 英语学习 (1)
- Windows 8 应用商店 (1)
- Go语言 (1)
- docker (1)
- visualVM源码学习 (0)
- MariaDB (0)
- JAVA7 (2)
- 面向对象存储 (0)
- Hibernate (14)
- Spring (3)
- 项目构建 (0)
- 读源码学JAVA (0)
- mybatis (1)
- spring mvc (2)
- Javassist (0)
最新评论
-
白天看黑夜:
Apache Mina Server 2.0 中文参考手册(带 ...
Mina学习笔记二_基础 -
yjph83:
兄弟,你这个解决方案是什么什么啊?我现在遇到个问题跟你类似的! ...
Tomcat 8.0.11 移动端访问报400错误问题 -
comedsh:
你好,我也想为开源的做点事情,想让 tomcat-redis- ...
利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法 -
bsr1983:
这个应该是浏览器内部设置的,你可以在Android上试一下别的 ...
javascript学习笔记八 -
787250527:
bsr1983 写道该值是浏览器内部的一个变量,只读的,不可修 ...
javascript学习笔记八
利用swt中的一个获取图片的类SwingResourceManager 来解决将程序打为jar后图片找不着的问题
该类的具体代码如下:
import java.awt.Image;
import java.awt.Toolkit;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import javax.swing.ImageIcon;
public class SwingResourceManager {
private static HashMap <String, Image> m_ClassImageMap = new HashMap <String, Image>();
private static Image getImage(InputStream is) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte buf[] = new byte[1024 * 4];
while (true) {
int n = is.read(buf);
if (n == -1)
break;
baos.write(buf, 0, n);
}
baos.close();
return Toolkit.getDefaultToolkit().createImage(baos.toByteArray());
} catch (Throwable e) {
return null;
}
}
public static Image getImage(Class clazz, String path) {
String key = clazz.getName() + ' ¦' + path;
Image image = m_ClassImageMap.get(key);
if (image == null) {
if ((path.length() > 0) && (path.charAt(0) == '/')) {
String newPath = path.substring(1, path.length());
image = getImage(new BufferedInputStream(clazz.getClassLoader().getResourceAsStream(newPath)));
} else {
image = getImage(clazz.getResourceAsStream(path));
}
m_ClassImageMap.put(key, image);
}
return image;
}
public static Image getImage(String path) {
return getImage("default", path); //$NON-NLS-1$
}
public static Image getImage(String section, String path) {
String key = section + ' ¦' + SwingResourceManager.class.getName() + ' ¦' + path;
Image image = m_ClassImageMap.get(key);
if (image == null) {
try {
FileInputStream fis = new FileInputStream(path);
image = getImage(fis);
m_ClassImageMap.put(key, image);
fis.close();
} catch (IOException e) {
return null;
}
}
return image;
}
public static void clearImages(String section) {
for (Iterator I = m_ClassImageMap.keySet().iterator(); I.hasNext();) {
String key = (String) I.next();
if (!key.startsWith(section + ' ¦'))
continue;
Image image = m_ClassImageMap.get(key);
image.flush();
I.remove();
}
}
public static ImageIcon getIcon(Class clazz, String path) {
return getIcon(getImage(clazz, path));
}
public static ImageIcon getIcon(String path) {
return getIcon("default", path); //$NON-NLS-1$
}
public static ImageIcon getIcon(String section, String path) {
return getIcon(getImage(section, path));
}
public static ImageIcon getIcon(Image image) {
if (image == null)
return null;
return new ImageIcon(image);
}
}
将该类放在你的项目中,使用方法 例子如下
lable对象.setIcon(SwingResourceManager.getIcon(label所在类的类名.class,
"图片所在相对与类路径"));
如你的图片icon.jpg在与你程序根目录namespace在同一根目录下的image文件夹中,则路径应写为/image/icon.jpg
如果打包,推荐使用eclipse插件:fatjar
该类的具体代码如下:
import java.awt.Image;
import java.awt.Toolkit;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import javax.swing.ImageIcon;
public class SwingResourceManager {
private static HashMap <String, Image> m_ClassImageMap = new HashMap <String, Image>();
private static Image getImage(InputStream is) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte buf[] = new byte[1024 * 4];
while (true) {
int n = is.read(buf);
if (n == -1)
break;
baos.write(buf, 0, n);
}
baos.close();
return Toolkit.getDefaultToolkit().createImage(baos.toByteArray());
} catch (Throwable e) {
return null;
}
}
public static Image getImage(Class clazz, String path) {
String key = clazz.getName() + ' ¦' + path;
Image image = m_ClassImageMap.get(key);
if (image == null) {
if ((path.length() > 0) && (path.charAt(0) == '/')) {
String newPath = path.substring(1, path.length());
image = getImage(new BufferedInputStream(clazz.getClassLoader().getResourceAsStream(newPath)));
} else {
image = getImage(clazz.getResourceAsStream(path));
}
m_ClassImageMap.put(key, image);
}
return image;
}
public static Image getImage(String path) {
return getImage("default", path); //$NON-NLS-1$
}
public static Image getImage(String section, String path) {
String key = section + ' ¦' + SwingResourceManager.class.getName() + ' ¦' + path;
Image image = m_ClassImageMap.get(key);
if (image == null) {
try {
FileInputStream fis = new FileInputStream(path);
image = getImage(fis);
m_ClassImageMap.put(key, image);
fis.close();
} catch (IOException e) {
return null;
}
}
return image;
}
public static void clearImages(String section) {
for (Iterator I = m_ClassImageMap.keySet().iterator(); I.hasNext();) {
String key = (String) I.next();
if (!key.startsWith(section + ' ¦'))
continue;
Image image = m_ClassImageMap.get(key);
image.flush();
I.remove();
}
}
public static ImageIcon getIcon(Class clazz, String path) {
return getIcon(getImage(clazz, path));
}
public static ImageIcon getIcon(String path) {
return getIcon("default", path); //$NON-NLS-1$
}
public static ImageIcon getIcon(String section, String path) {
return getIcon(getImage(section, path));
}
public static ImageIcon getIcon(Image image) {
if (image == null)
return null;
return new ImageIcon(image);
}
}
将该类放在你的项目中,使用方法 例子如下
lable对象.setIcon(SwingResourceManager.getIcon(label所在类的类名.class,
"图片所在相对与类路径"));
如你的图片icon.jpg在与你程序根目录namespace在同一根目录下的image文件夹中,则路径应写为/image/icon.jpg
如果打包,推荐使用eclipse插件:fatjar
发表评论
-
linux下nodejs 安装
2016-09-28 19:27 662curl --silent --location https ... -
org.apache.cxf.common.i18n.UncheckedException: No operation was found with
2015-09-16 18:25 4853调用CXF编写的webservice时出现异常: org ... -
cmd可以ping通baidu.com,但是浏览器打不开网站
2015-09-16 18:24 2860cmd可以ping通baidu.com,但是浏览器打不开网站 ... -
openfire安装WebSocket插件
2015-09-01 17:59 3751WebSockets Plugin 安装说明 Prereq ... -
httpclient4.x 使用连接池发送https请求使用总结
2015-05-14 15:35 28254由于项目中需要用httpclient进行内部服务请 ... -
【转】java中request获取IP
2014-07-17 16:18 924项目中需要和第三方平 ... -
Java使用commons-dbcp2.0.1参数配置
2014-07-15 11:03 106841.关于commons-pool及commons-dbcp版 ... -
使用JDK自带的visualvm进行性能监测和调优
2014-07-14 13:50 81461.关于VisualVm工具 VisualVM ... -
[转]VisualVM 入门指南
2014-07-10 14:40 985转自:http://visualvm.java.net/zh ... -
[转]九大工具助你玩转Java性能优化
2014-07-10 11:06 857本文由 ImportNew - 陈 晓舜 翻译自 idrso ... -
struts2全局错误配置
2014-04-29 19:46 778<global-results> <r ... -
mysql 错误代码和消息
2014-02-24 14:09 1865原文地址:http://dev.mysql.com/doc/ ... -
Hibernate结合Spring配置可动态切换的数据源
2014-02-19 17:57 1318Hibernate结合Spring配置可动态切换的数据源,具 ... -
Sphinx或coreseek做全文索引相关备忘三
2013-12-09 15:29 1779今天遇到之前部署的全文检索昵称在查询时不能精确匹配的问题, ... -
Sphinx或coreseek做全文索引相关备忘二
2013-11-29 11:42 1114coreseek全文索引配置,多索引 #MySQL数 ... -
mysql中查看表结构相关sql
2013-11-19 11:22 4922/**查看表结构**/ desc yourtablena ... -
win7恢复锁定任务栏的快捷方式
2013-08-04 00:59 1079把以下命令分别输入到开始-运行中 1、cmd /k re ... -
eclipse内存分析工具
2013-07-23 18:21 876Eclipse Memory Analyzer (MAT) ... -
Sphinx或coreseek做全文索引相关备忘
2013-05-27 15:28 14381.下载sphinx或coreseek sphinx:http ... -
java环境变量
2013-05-17 11:37 1121JAVA_HOME:C:\Program Files\Java ...
相关推荐
利用swt中的一个获取图片的类SwingResourceManager 来解决将程序打为使用java打包之后,生成的jar包中图片找不着的。这是因为通过class.getResource()方法在IDEA中运行的路径和生成jar包获取的的路径是不同的。打成...
DJNativeSwing-SWT.jar是这个库的核心,它实现了将SWT组件集成到Swing应用中的桥梁,使得开发者可以在一个应用中同时利用Swing和SWT的优点。 DJNativeSwing.jar是DJProject的主要库,它包含了一系列用于构建混合...
SWT(Standard Widget Toolkit)是Java编程环境中一个用于创建图形用户界面(GUI)的开源库,它是Eclipse项目的一部分。标题“swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位”表明这个压缩包包含了适用于...
swt.jar swt.jar swt.jar swt.jar swt.jar
如果你的开发环境是32位的,或者你需要为32位系统构建应用程序,这个jar包将非常有用。 描述中提到,如果Eclipse环境中没有SWT的jar包,或者现有的jar包是绝对路径,那么你可能无法正常开发使用SWT的图形界面。这是...
2. swt-debug.jar:这是一个用于SWT的调试版本的jar文件,通常包含了额外的代码和信息,帮助开发者在调试过程中定位问题。它可能包含了更详细的错误报告和日志记录,以便于在开发阶段找出潜在的问题。 3. org....
在本案例中,我们关注的是SWT的arm64版本——`swt-arm64.jar`,这是一个专为国产化服务器架构设计的库,适用于飞腾服务器和麒麟服务器等基于ARM64架构的系统。 在传统的Java GUI开发中,开发者通常会使用AWT或Swing...
通过添加这个jar到项目的类路径,开发者就可以在他们的程序中使用SWT组件,如按钮、文本框、树视图等。 描述中提到的"src.zip"文件包含的是SWT的源代码,这对于开发者进行调试、学习和定制SWT行为至关重要。源代码...
标题 "org.eclipse.wb.swt.SWTResourceManager类找不到使用不了" 描述了开发人员在尝试将一个基于Eclipse RCP(Rich Client Platform)的应用程序移植到IntelliJ IDEA时遇到的问题。SWT(Standard Widget Toolkit)是...
描述中的问题提示我们,虽然提供了64位和32位的SWT jar包,但64位的jar包并不能解决上述的兼容性问题。这可能意味着64位的SWT库可能没有包含解决这个问题的必要组件,或者用户需要正确配置其开发环境以使用正确的库...
标题中的"swt/jface.jar"是一个关键组件,它在Java开发环境中用于构建用户界面。SWT(Standard Widget Toolkit)是IBM开发的一个开源GUI库,它提供了与原生操作系统更紧密集成的图形用户界面控件。JFace是建立在SWT...
`swt-debug.jar`是SWT的调试版本,包含额外的调试信息,有助于开发者在调试过程中获取更详细的错误信息,以优化代码和解决问题。 `.project`文件同样属于Eclipse项目配置的一部分,它定义了项目的属性,如构建设置...
需要在32为浏览器中使用",这意味着这个库是针对32位系统的,如果你的应用程序或开发环境是32位的,你需要使用这个版本的SWT库才能正常运行。同时,"src中为源码,可以直接在项目中引用"意味着除了预编译的jar包之外...
标题中的“swt程序发布,jar转exe”指的是将基于Java SWT(Standard Widget Toolkit)编写的程序转换成可执行的Windows EXE文件。SWT是Java平台上的一个GUI库,它提供了与本机操作系统更紧密集成的用户界面,使得...
3. `swt-debug.jar`:这是一个包含SWT库的调试版本的JAR文件,它允许开发者在开发过程中获取更多的调试信息,以帮助定位和解决问题。 4. `swt.jar`:这是主要的SWT库文件,包含了实现SWT控件和功能的Java类。开发者...
"swt_jar_2"这个压缩包子文件的文件名称表明它可能是SWT的一个版本,可能是更新或修正后的版本,包含了多个JAR文件,分别对应不同的操作系统平台(如Windows、Linux、Mac OS等),因为SWT库是跨平台的,需要针对不同...
将下载的"swt_jar"添加到Java项目的类路径中,可以在代码中导入SWT相关的类和方法,开始创建SWT GUI。需要注意的是,由于SWT依赖于特定的操作系统和架构,所以需要选择与目标运行环境匹配的JAR文件。 7. 示例代码...
描述中提到的"成功解决32位64位java开发难题",意味着SWT.jar文件的提供解决了开发者在跨不同位宽系统时遇到的兼容性问题。在Java开发中,如果你的程序需要在不同平台上运行,包括32位和64位系统,你需要为每个平台...
在JAVA调用IE内核制作浏览器的过程中,SWT使用了一个名为`Browser`的类,这个类允许开发者创建一个内嵌的Web浏览器控件。它支持HTML、CSS、JavaScript等Web标准,并且可以执行复杂的Web应用程序。这种功能对于那些...
总的来说,这个压缩包为开发者提供了在Windows 32位和Linux 64位系统上使用SWT所需的jar文件,使得开发者可以创建具有原生外观和性能的Java GUI应用程序。无论你是正在构建一个新的桌面应用,还是希望提升现有应用的...