一、概述
系统资源包括颜色(Color)、字体(Font)、光标(Curor)和图像(Image)等。这些系统资源,在使用后
一定要释放,否则会严重影响系统的整体性能。
Color color=new Color(display,255,0,0)
color.dispose()
在底层会创建颜色资源,这种情况要记得释放掉。
Color color=display.getSystemColor(SWT.CORLOR_RED)
这种情况不需要释放,因为不是我们创建的,我们只是获取它的引用。
疑问:
(1)java垃圾回收器不能回收本地操作系统的对象,所以本地资源的释放一定要显示的。
(2)如果窗口中得控件很多,不可能一一释放,所以swt提供了一个机制,就是释放了父控件也就是释放了它的子
控件。该规则只适合Widget的子类。如果使用了像图像、字体、颜色等系统资源,仍需要显示地释放。判断控件是否被释放,可以调用isDisposed方法,如果已经释放返回true,否则返回false;
二、颜色
SWT已经内置了一下常见的颜色,可以通过下面的方法来获取。
Text tx=new Text(shell, SWT.MULTI);
tx.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
tx.setForeground(display.getSystemColor(SWT.COLOR_YELLOW));
还提供了一下系统的标签颜色,例如
display.getSystemColor(SWT.COLOR_TITLE_BACKGROUND);//标题栏的背景色,会根据不同的操作系统显示
不同的颜色
其他的可以查询相关的api。
RGB颜色
颜色一般由三原色组成,红、绿、蓝。计算机使用的颜色,每个颜色三原色的取值范围都是0到255,例如创
建一个黑色的RGB颜色是
RGB black=new RGB(0,0,0)
这只是创建了RGB对象,还有创建颜色才能使用
Color c=new Color(shell,black)
三、字体:
Font font=new Font(display,"Courier",10,SWT.NORMAL)
Courier表示字体的名称,10表示大小,NORMAL表示是正常字体,BOLD表示加粗,ITALIC表示倾斜;
或者
FontData data=new FontData("Courier",10,SWT.NORMAL);
Font data=new Font(display,data)
使用
tx.setFont(new Font(display, "实体",16,SWT.BOLD));
四、光标
系统光标,系统设置了一些常见的光标,例如:
Cursor cursor=new Cursor(display,SWT.CURSOR_HAND)
自定义光标
new Cursor(display,ImagaData source,int hotspotx,int hotspoty)
五、画布类(Canvas)
该类继承Composite,可以看做是一种面板类,可以在上面画画的面板。
public class HelloWorldSWT {
public static void main(String args[]){
Display display=Display.getDefault();
Shell shell=new Shell();
shell.setSize(200,150);
shell.setText("mmm");
shell.setLayout(new FillLayout());
final Image image=new Image(display, "c:\\1.jpg");
final Image image2=new Image(display,image,SWT.IMAGE_DISABLE);
Canvas canvas=new Canvas(shell, SWT.BACKGROUND);
canvas.addPaintListener(new PaintListener() {
//当需要显示图像的时候,就会调用该方法
//gc,是一个绘图对象,利用它可以绘制线条、矩形、椭圆形等图像。
public void paintControl(PaintEvent arg0) {
System.out.println("ssss");
arg0.gc.drawImage(image2, 10,10);
}
});
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch()){
display.sleep();
}
}
image.dispose();
display.dispose();
}
}
六、图像类
创建图像类的各种方法
Image(display,"c:\\1.jpg")
Imgae(display,getClass.getResourceAsStream("1.jpg"))
是与该java类同文件夹下地1.jpg的数据流。
Image(display,Image src,SWT.IMAGE_GRAY)
ImageData id=new ImageData("C:\\1.jpg")
Image image=new Image(display,id);
ImageData id2=id.scaledTo(id.width*2,id.height*2);
Image image2=new Image(display,id2)
保存变化后的图像
ImageLoader load=new ImageLoader()
load.data=new ImageData[]{id2};
load.save("c:\\2.jpg",SWT.IMAGE_GIF)
分享到:
相关推荐
人力资源管理系统类图 人力资源管理系统类图人力资源管理系统类图人力资源管理系统类图人力资源管理系统类图人力资源管理系统类图人力资源管理系统类图人力资源管理系统类图人力资源管理系统类图人力资源管理系统类...
人力资源管理系统类图文档人力资源管理系统类图文档人力资源管理系统类图文档人力资源管理系统类图文档人力资源管理系统类图文档人力资源管理系统类图文档人力资源管理系统类图文档
2、使用 System.Resources 系统资源类 3、使用 listBox1 列表框类 4、使用 FolderBrowserDialog 文件夹浏览对话框类 5、使用 OpenFileDialog 打开文件对话框类 6、使用 toolStrip 工具栏类 7、使用内嵌资源包含 ...
在本项目中,开发者可能使用了QDialog或 QMainWindow 作为主窗口,利用QLabel显示信息,QLineEdit让用户输入系统资源类数,以及QPushButton实现用户交互,如检测死锁和释放资源的按钮。此外,可能还使用了...
(1)系统资源分配图输入(界面) • 按资源分配图的形式定义,输入进程名字、资源类名字及其个数、申请/占有边。 (2)运行结果(界面) • ① 以图形的形式输出原资源分配图; • ② 以图形的形式动态输出原资源分配图...
1. **资源类(Resource Class)**:代表不同类型的系统资源,如CPU、内存和磁盘。 2. **资源信息收集器(ResourceCollector)**:负责调用系统API获取资源数据。 3. **数据显示器(Display)**:将收集到的信息格式...
在IT行业中,资源管理系统是一种关键的应用程序,它用于有效地组织、存储和管理各种类型的资源,如文档、图片、视频、音频、代码等。在PHP环境下构建的资源管理系统,利用了PHP这种服务器端脚本语言的强大功能,以...
资源类代码是一个重要的编程概念,尤其在开发没有数据库的资源管理系统时,它是核心部分。资源管理涉及对系统中各类资源的高效、安全和有序的控制,包括内存、文件、网络连接、硬件设备等。理解并掌握资源类代码的...
设计一个n个并发进程共享m个系统资源的程序以实现银行家算法。要求: 1) 简单的选择界面; 2) 能显示当前系统资源的占用和剩余情况。 3) 为进程分配资源,如果进程要求的资源大于系统剩余的资源,不与分配并且...
本项目是一个基于Python的系统资源监控工具,利用上下文管理器对CPU、内存、磁盘和网络等关键系统资源进行实时监控。通过自定义的上下文管理器类,实现了资源使用情况的收集、监控和可视化展示。 使用人群: 系统...
四类和五类地区虽然太阳能资源较少,但在适当的科技支持下,如采用更高效的光伏组件和智能跟踪系统,仍然可以有效利用太阳能,满足部分能源需求。 光伏发电技术是利用太阳能电池将太阳光直接转化为电能的过程。...
《数字校园应用系统资源与应用建设》的主题围绕着如何构建和完善数字校园的基础设施,强调了应用系统的分类和数字资源的建设。在当前信息化时代,数字校园的建设是推动教育现代化的重要手段,它不仅提升了教学效率,...
使用C++设计一个n 个并发进程共享m 个系统资源的系统。其中进程可动态申请资源和释放资源,系统按各进程的申请动态的分配资源,要求采用银行家算法实现。 设计思想 本实验是基于Dijkstra的银行家算法的实现,该...
C#系统信息类 1)可获取全部系统信息 2)可获取全部硬件信息 3)CPU , BIOS ,网络端口 ,串口 , USB 等硬件信息
对于跨平台的开发环境,如Android和iOS,也有相应的API用于获取系统资源。在Android中,开发者可以使用`getDrawable()`方法从资源文件夹中获取图片;在iOS中,可以使用`UIImage`类的`imageNamed:`方法来加载系统图片...
秉承网软志成分类网独创的模板和数据库体系以及专业的代码设计保证了网软志成分类信息网系统的持续高效和稳定。 卓越的负载能力 网软志成分类信息系统核心参数的合理配置,专业的web 、数据库、附件和图片链的负载...
《基于Struts2的人力资源管理系统详解》 在信息技术飞速发展的今天,企业对人力资源管理的需求日益增强,高效、智能化的人力资源管理系统成为企业管理的重要工具。本文将详细探讨一款基于Struts2框架的人力资源管理...
几乎不耗系统资源 在win7下占用内存只有1mb左右,而对cpu的占用几乎可以忽略。 而像everest之类虽然也可以检测cpu的实时温度,而在运行时可以吃掉系统30mb左右的内存,并且对cpu的占用率也十分可怕(最高时可以达到...
这是一个新设计的教学资源库系统 界面 采用Extjs4 desktop 技术 教学资源库系统主要功能: 教学资源的管理,提供上载、分类检索、下载 ,按学科分类,按资源类型分类等功能,有全面的分级权限控制,多种检索方法,...
在了解这个模拟系统前,我们需要明确一点:它并不是关于C语言编程的学习资源,而是针对云南省一级C类考试的特定知识领域。云南省一级C类考试可能包括计算机基础知识、操作系统的使用、网络基础、办公软件的应用等...