barriers / 阅读 / 详情

eclipse swt如何添加背景图片

2023-08-22 16:41:17
共1条回复
皮皮
* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示!

java中的图形编程上时不能直接加背景图片的,如果相加。我们可以自己写,我给你一个类:

这个是一个可以生成背景图片的类。

import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.Image;

import javax.swing.JPanel;

/**

* 该类实现自定义的面板,可以显示图片

*

*/

public class ImagePanel extends JPanel{

private static final long serialVersionUID = -5029535020120106282L;

/**Image类型的实例*/

private Image img;

/**

* 构造函数

* @param img Image 对象

*/

public ImagePanel(Image img)

{

this.img=img;

Dimension size=new Dimension(img.getWidth(null),img.getHeight(null));

setSize(size);

setPreferredSize(size);

/* public void setPreferredSize(Dimension preferredSize)将组件的首选大小设置为常量值。

对 getPreferredSize 的后续调用总是返回此值。将首选大小设置为 null 可还原默认的行为*/

setMinimumSize(size);

setMaximumSize(size);

setLayout(null);

}

/**

* 设置图像面板的图像对象

* @param img Image类型对象

*/

public void setImage(Image img) {

this.img = img;

}

/**

* 重写父类的方法

*/

public void paintComponent(Graphics g)

{

g.drawImage(img, 0, 0, null);

}

}

下面是使用方法:

import java.awt.Dimension;

import java.awt.Toolkit;

import j**.net.URL;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

public class Member extends JFrame {

public Member() {

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setTitle("会员管理");

setSize(700,600);

//把屏幕定位到中心

Toolkit tool=this.getToolkit();

Dimension di= tool.getScreenSize();

double width=di.getWidth();

double height=di.getHeight();

this.setLocation((int)((width-this.getWidth())/2), (int)((height-this.getHeight())/2));

// //设置背景图片

{

//设置背景图片

URL url = getClass().getResource("/images/1.jpg");//这个是你 的图片的路径,就不用我说了吧,把路径写正确就可以了

if(url != null) {

ImagePanel mai=new ImagePanel(new ImageIcon(url).getImage());

this.add(mai);

}

}

setResizable(false);

setVisible(true);

}

public static void main(String[] args) {

Member m=new Member();

}

}

相关推荐

“swt”是什么意思?

在Java中,SWT(Standard Widget Toolkit) Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract WindowingToolkit).AWT框架底层使用原生窗口部件(native widgets)构建,只能使用各个平台窗口部件的子集。SWT: 标准部件工具包SWT是一个为Java设计提供了高效的部件工具包,便携式的访的用户界面操作系统并在其上实现
2023-08-14 02:15:561

带有swt的英文单词有哪些

带有swt的英文单词有swat、swot、switch。重点词汇:swat英[swu0252t]释义:n.用劲打击;重拍;全垒打。vt.重拍;猛击;用力击出(远距离球)。[复数swats第三人称单数swats现在分词swatting过去式swatted过去分词swatted]短语:SWAT 4霹雳小组;反恐特警组;繁体中文版霹雳小组。例句用作动词(v.)He used a branch to swat at dragonflies.他用树枝扑蜻蜓。Why didn't Noah swat those two mosquitoes?为什么诺亚没有拍死那两只蚊子?
2023-08-14 02:16:051

swt是什么啊如题 谢谢了

SWT(Standard Widget Toolkit) Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。 在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit). 虽然AWT框架也使用的是原生窗口部件(native widgets),但是它一直未能突破LCD问题。LCD问题导致了一些主要平台特征的遗失。 为解决这个问题,Sun又创建了一个新的框架。这个框架不再使用原生窗口部件,而是使用仿真窗口部件(emulated widgets)。这个方法虽然解决了LCD问题,并且提供了丰富的窗口部件集,但是它也带来了新的问题。例如,Swing应用程序的界面外观不再和原生应用程序的外观相似。 虽然在JVM中这些Swing应用程序已经得到了最大程度的性能改善,但是它们还是存在着其原生对应物所不具有的性能问题。并且,Swing应用程序消耗太多的内存,这样Swing不适于一些小设备,如PDA和移动电话等。 IBM进行了尝试以彻底解决AWT和Swing框架带来的上述问题。最终,IBM创建了一个新的GUI库,这就是SWT。SWT框架通过JNI来访问原生窗口部件。如果在宿主(host)平台上无法找到一个窗口部件,SWT就会自动地模拟它。 为了方便开发SWT程序,在SWT基础上又创建了一个更易用、功能强大的图形包“JFace”。然而,JFace并不能完全覆盖SWT的所有功能,所以编程时SWT、JFace都会要用到,但是一般来说,能用JFace的组件就最好不要用SWT的。 SWT本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API。或许是无心插柳,或是有意为之,至今为止,SWT无论是在性能和外观上,都超越了SUN公司提供的AWT和SWING。目前SWT已经十分稳定。这里指的稳定应该包含两层意思: 一是指性能上的稳定,其中的关键是源于SWT的设计理念。SWT最大化了操作系统的图形构件API,就是说只要操作系统提供了相应图形的构件,那么SWT只是简单应用JNI技术调用它们,只有那些操作系统中不提供的构件,SWT才自己去做一个模拟的实现。可以看出SWT的性能上的稳定大多时候取决于相应操作系统图形构件的稳定性。 另一个稳定是指SWT API包中的类、方法的名称和结构已经少有改变,程序员不用担心由于Eclipse组织开发进度很快(Eclipse IDE每天都会有一个Nightly版本的发布),而导致自己的程序代码变化过大。从一个版本的SWT更新至另一版本,通常只需要简单将SWT包换掉就可以了。求采纳
2023-08-14 02:16:211

SWT是什么?与swing/awt相比有什么优缺点

相比,swing和awt,都太弱了!
2023-08-14 02:16:292

swt中文是什么意思

SWT abbr. switch time 开关时间; Si-Wu-Tang 四物汤(中药); School of Welding Technology 焊接技术学校; [例句]We are now finished with our tour of SWT GUI controls.我们现在完成了对SWT GUI控件的游历。
2023-08-14 02:16:421

卡西欧手表swt是什么意思

卡西欧swt是卡西欧的秒表模式。按mode模式 ,会出现TMR,SWT,WT手表模式依次为、WT世界时间模式,STW秒表模式,TMR倒数定时器模式,ALM 闹铃模式表盘中下方的飞机指针形状的圆盘是世界时间时数和分数。卡西欧手表保养常识手表调整注意事项手表的日历、星期、月相之调整不能在卡西欧手表时间21点至3点之间操作,这个时间段日历功能正在进行运作,同时也是齿轮齿合度较低的时候,频繁的动作会损伤卡西欧手表的内部零件。采用螺旋式表冠的卡西欧手表,不能硬拔,请先逆时针方向旋转打开锁紧的表冠,在调整好时间后,将表冠顺时针方向转动并推入锁紧,以免进水。卡西欧手表的防水性能主要依靠表镜、后盖、表冠等处的防水胶圈,并采用螺旋式表冠,从而达到相应的防水标准。卡西欧手表虽然可以防水,但是不可以在热水浴、桑拿浴或温差变化剧烈的环境中使用,因为防水胶圈受温度的影响会热胀冷缩出现空隙,并加速老化而影响防水功能。
2023-08-14 02:16:501

全面比较Swing与SWT

  简短的说Swing相对于SWT的优势有 速度快 有皮肤机制支持 优秀的框架 灵活可扩展 官方标准 %的市场占有率 丰富的第三方类库 不计其数的学习材料 强大免费的图形界面设计工具(NetBeans Matisse) 相对于SWT的缺点有 多耗 M左右内存 启动速度稍慢 桌面集成相对弱 两者都有着漂亮的本地化外观   从两者当初设计的目标来看 SWT是治标 目的是为了提高速度 改善外观 Swing是治本 它从框架 结构着手 Swing因此有着比SWT更广阔的发展空间 由于有着优秀的架构 而且Java完全控制着实现权 所以Swing总是可以不断被改进的 当Swing成熟了而弥补了速度和外观后 Swing的发展就因其良好的架构 就因为代码控制权等因素 而呈现出一片广阔的天空 而SWT从一诞生起 其先天性架构和实现缺陷就已经决定它很难前进 由于依赖本地操作系统 SWT可以发展的空间很小 开始也许可以借助操作系统的本地实现来快速达到很好的效果 但到此就结束了 自己再优化反展的空间就很小了 它将的实现大部分都交给了异质的系统 它无法控制的系统 却需要花费相当代价进行交互的系统   SWT上手速度要快一些 因为SWT的API类似于传统的GUI工具 这使得许多从传统GUI工具中转过来的程序员很容易上手 传统GUI工具系统尤其是Windows平台的 是基于消息映射机制的 其基本模型是面向过程和面向消息的 Swing的设计思想是基于面向对象的典范 其MVC模式是程序设计模式的经典 总的来说 Swing与SWT就像面向对象语言之于面向过程语言 但就学习曲线来说 Swing并不比SWT陡峭 Swing本身已经非常成熟 官方提供的文档 各种网上资料 书籍 讨论区浩如烟海 其实学习曲线也未必比SWT陡峭   就Swing与SWT的开发体验来说 SWT给开发者的体验往往是对于SWT的满意程度同使用SWT的时间成反比 同对SWT与Swing的了解程度成反比 刚开始往往是非常满意 甚至有惊艳的感觉 但随着使用时间的增长 随着对于SWT了解的深入 这种满意度就会越来越下降 总之喜爱程度和了解程度成反比 Swing给开发者的体验是 开始也许你要经常发牢骚 这些牢骚就像在抱怨一个饱经风霜 看似相貌平平 但实际却非常有内涵的人一样 随着你对它的了解的加深 你就会越来越被它吸引 最终你会惊叹于它的博大精深 你会发现你越学懂得越少 而你的知识和能力却像内力一样越来越深厚 总之喜爱程度和了解程度成正比 lishixinzhi/Article/program/Java/hx/201311/27183
2023-08-14 02:17:141

swt是什么文件

是FLSH是一个动画文件
2023-08-14 02:17:353

宝马swt是什么意思

宝马豪华旅行车的意思。宝马车型中的字母代表,c代表双座跑车及敞篷车;l代表加长型豪华轿车;728d中的d代表柴油车;530xi中x代表采用了宝马四驱技术xDrive;750hL中h代表氢动力;318ti中的t代表紧凑型。以宝马X5(参数询价)的2021款xDrive40iM运动套装为例,这款车的级别为中大型SUV,能源类型为汽油,最大功率为250kw。宝马X5的2021款xDrive40iM运动套装的长宽高分别为4930毫米、2004毫米、1776毫米,轴距为2975毫米,车身类型为5门5座SUV,变速箱为8挡手自一体,驱动方式为前置四驱,四驱形式为适时四驱。宝马的总部在在德国的慕尼黑,1917年正式创立,创始人是吉斯坦奥托。宝马的车标是蓝白相间的图案,代表的是巴伐利亚州的州徽,用来告诉世人,宝马是来自巴伐利亚州的纯正血统。
2023-08-14 02:17:421

swt起什么作用摩托车

户外防风作业。摩托车,由汽油机驱动,靠手把操纵前轮转向的两轮或三轮车,轻便灵活,行驶迅速,广泛用于巡逻、客货运输等,也用作体育运动器械。从大的方向上来说,摩托车分为街车,公路赛摩托车,越野摩托车,巡航车,旅行车等。摩托车是一种灵便快速的交通工具,也用于军事和体育竞赛,装有内燃发动机,有两轮和三轮摩托车。
2023-08-14 02:17:491

Java桌面应用程序设计:SWT简介

  Java语言的声望和它在桌面应用程序(GUI程序)所取得的成就显然极不相符 至今仍然很少能看到非常成功Java桌面程序 虽然有JBuilder Netbean JProbe等大型软件作为代表 但这仍不能证明Java的GUI程序是成功的 它们的外观总是和同一操作系统平台下的其它软件显得格格不入 对机器配置的需求也似乎永无止境 这使得它们只能被一些总是拥有当前最高性能PC的程序员们所容忍 或是那些不在乎金钱和时间的专业用户所接受 对绝大多数计算机使用者来说 AWT或SWING代表着怪异的界面和无法接受的速度 Standard Widget Toolkit(SWT)或许是Java这一噩梦的终结者 广大Java程序员终于可以开发出高效率的GUI程序 它们拥有标准的外观 几乎没有人能看出你的程序是用Java写出来的 更为重要的是 这些程序是跨平台的   SWT本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API 或许是无心插柳 或是有意为之 至今为止 SWT无论是在性能和外观上 都超越了SUN公司提供的AWT和SWING 目前Eclipse IDE已经开发到了 版本 SWT已经十分稳定 这里指的稳定应该包含两层意思   一是指性能上的稳定 其中的关键是源于SWT的设计理念 SWT最大化了操作系统的图形构件API 就是说只要操作系统提供了相应图形的构件 那么SWT只是简单应用JNI技术调用它们 只有那些操作系统中不提供的构件 SWT才自己去做一个模拟的实现 可以看出SWT的性能上的稳定大多时候取决于相应操作系统图形构件的稳定性   另一个稳定是指SWT API包中的类 方法的名称和结构已经少有改变 程序员不用担心由于Eclipse组织开发进度很快(Eclipse IDE每天都会有一个Nightly版本的发布) 而导致自己的程序代码变化过大 从一个版本的SWT更新至另一版本 通常只需要简单将SWT包换掉就可以了    第一个SWT程序   下面让我们开始一个SWT程序 (注意 以下的例子和说明主要针对Windows平台 其它的操作系统应该大同小异) 首先要在Eclipse安装文件中找到SWT包 Eclipse组织并不提供单独的SWT包下载 必须下载完整的Eclipse开发环境才能得到SWT包 SWT是作为Eclipse开发环境的一个插件形式存在 可以在${你的eclipse安装路径}plugins路径下的众多子目录下去搜索SWT JAR文件 在找到的JAR文件中包含了SWT全部的Java类文件 因为SWT应用了JNI技术 因此同时也要找到相对应的JNI本地化库文件 由于版本和操作平台的不同 本地化库文件的名称会有些差别 比如SWT WIN DLL是Window平台下Eclipse Build 的动态库 而在Unix平台相应版本的库文件的扩展名应该是 so 等等 注意的是 Eclipse是一个开放源代码的项目 因此你也可以在这些目录中找到SWT的源代码 相信这会对开发很有帮助 下面是一段打开空窗口的代码(只有main方法) import e one example;public class OpenShell{ public static void main(String [] args) {  Display display = new Display();  Shell shell = new Shell(display);  shell open();  // 开始事件处理循环 直到用户关闭窗口  while (!shell isDisposed()) {   if (!display readAndDispatch())    display sleep();  }  display dispose(); }}   确信在CLASSPATH中包括了SWT JAR文件 先用Javac编译例子程序 编译无错后可运行java Djava library path=${你的SWT本地库文件所在路径} e one example OpenShell 比如SWT WIN DLL件所在的路径是C:swtlib 运行的命令应该是java Djava library path=c:swtlib e one example OpenShell 成功运行后 系统会打开了一个空的窗口    剖析SWT API   下面再让我们进一步分析SWT API的组成 所有的SWT类都用 eclipse swt做为包的前缀 下面为了简化说明 我们用*号代表前缀 eclipse swt 比如* widgets包 代表的是 eclipse swt widgets包   我们最常用的图形构件基本都被包括在* widgets包中 比如Button Combo Text Label Sash Table等等 其中两个最重要的构件当数Shell和Composite Shell相当于应用程序的主窗口框架 上面的例子代码中就是应用Shell构件打开一个空窗口 Composite相当于SWING中的Panel对象 充当着构件容器的角色 当我们想在一个窗口中加入一些构件时 最好到使用Composite作为其它构件的容器 然后再去* layout包找出一种合适的布局方式 SWT对构件的布局也采用了SWING或AWT中Layout和Layout Data结合的方式 在* layout包中可以找到四种Layout和与它们相对应的布局结构对象(Layout Data) 在* custom包中 包含了对一些基本图形构件的扩展 比如其中的CLabel 就是对标准Label构件的扩展 上面可以同时加入文字和图片 也可以加边框 StyledText是Text构件的扩展 它提供了丰富的文本功能 比如对某段文字的背景色 前景色或字体的设置 在* custom包中也可找到一个新的StackLayout布局方式   SWT对用户操作的响应 比如鼠标或键盘事件 也是采用了AWT和SWING中的Observer模式 在* event包中可以找到事件监听的Listener接口和相应的事件对象 例如常用的鼠标事件监听接口MouseListener MouseMoveListener和MouseTrackListener 及对应的事件对象MouseEvent   * graphics包中可以找到针对图片 光标 字体或绘图的API 比如可通过Image类调用系统中不同类型的图片文件 通过GC类实现对图片 构件或显示器的绘图功能   对不同平台 Eclipse还开发了一些富有针对性的API 例如 在Windows平台 可以通过* ole win 包很容易的调用ole控件 这使Java程序内嵌IE浏览器或Word Excel等程序成为可能!    更复杂的程序   下面让我们展示一个比上面例子更加复杂一些的程序 这个程序拥有一个文本框和一个按键 当用户点击按键的时候 文本框显示一句欢迎信息   为了文本框和按键有比较合理的大小和布局 这里采用了GridLayout布局方式 这种布局是SWT中最常用也是最强大的布局方式 几乎所有的格式都可能通过GridLayout去达到 下面的程序也涉及到了如何应用系统资源(Color) 以及如何释放系统资源 private void initShell(Shell shell) { //为Shell设置布局对象 GridLayout gShellLay = new GridLayout(); shell setLayout(gShellLay); //构造一个Composite构件作为文本框和按键的容器 Composite panel = new Composite(shell SWT NONE); //为Panel指定一个布局结构对象   这里让Panel尽可能的占满Shell 也就是全部应用程序窗口的空间  GridData gPanelData = new GridData(GridData GRAB_HORIZONTAL| GridData GRAB_VERTICAL|GridData FILL_BOTH); panel setLayoutData(gPanelData); //为Panel也设置一个布局对象 文本框和按键将按这个布局对象来显示  GridLayout gPanelLay = new GridLayout(); panel setLayout(gPanelLay); //为Panel生成一个背景色 final Color bkColor = new Color(Display getCurrent() ); panel setBackground(bkColor); //生成文本框 final Text text = new Text(panel SWT MULTI|SWT WRAP); //为文本框指定一个布局结构对象   这里让文本框尽可能的占满Panel的空间  GridData gTextData = new GridData (GridData GRAB_HORIZONTAL| GridData GRAB_VERTICAL|GridData FILL_BOTH); text setLayoutData(gTextData); //生成按键 Button butt = new Button(panel SWT PUSH); butt setText( Push ); //为按键指定鼠标事件 butt addMouseListener(new MouseAdapter(){  public void mouseDown(MouseEvent e){   //当用户点击按键的时候 显示信息   text setText( Hello SWT );  } }; //当主窗口关闭时 会触发DisposeListener 这里用来释放Panel的背景色  shell addDisposeListener(new DisposeListener(){  public void widgetDisposed(DisposeEvent e) {   bkColor dispose();  } };}   把这段代码中的方法initShell()加入到第一个打开空窗口的例子中 得到的是一段能成功运行的完整GUI应用程序 运行方法可参考第一个例子    系统资源的管理   在一个图形化的操作系统中开发程序 都要调用系统中的资源 如图片 字体 颜色等 通常这些资源都是有限的 程序员务必非常小心的使用这些资源 当不再使用它们时 就请尽快释放 不然操作系统迟早会油尽灯枯 不得不重新启动 更严重的会导致系统崩溃   SWT是用Java开发的 Java语言本身的一大优势就是JVM的 垃圾回收机制 程序员通常不用理会变量的释放 内存的回收等问题 那么对SWT而言 系统资源的操作是不是也是如此?答案是一个坏消息 一个好消息   坏消息是SWT并没采用JVM的垃圾回收机制去处理操作系统的资源回收问题 一个关键的因素是因为JVM的垃圾回收机制是不可控的 也就是说程序员不能知道 也不可能做到在某一时刻让JVM回收资源!这对系统资源的处理是致命的 试想你的程序希望在一个循环语句中去查看数万张图片 常规的处理方式是每次调入一张 查看 然后就立即释放该图片资源 而后在循环调入下一张图片 这对操作系统而言 任何时刻程序占用的仅仅是一张图片的资源 但如果这个过程完全交给JVM去处理 也许会是在循环语句结束后 JVM才会去释放图片资源 其结果可能是你的程序还没有运行结束 操作系统已经宕掉   但下面的好消息也许会让这个坏消息变得无关紧要 对于SWT 只需了解两条简单的 黄金 法则就可以放心的使用系统资源!之所以称为黄金法则 一是因为少 只有两条 二是因为它们出奇的简单 第一条是 谁占用 谁释放 第二条是 父构件被销毁 子构件也同时被销毁 第一条原则是一个无任何例外的原则 只要程序调用了系统资源类的构造函数 程序就应该关心在某一时刻要释放这个系统资源 比如调用了 Font font = new Font (display Courier SWT NORMAL);   那么就应该在不在需要这个Font的时候调用 font dispose();   对于第二个原则 是指如果程序调用某一构件的dispose()方法 那么所有这个构件的子构件也会被自动调用dispose()方法而销毁 通常这里指的子构件与父构件的关系是在调用构件的构造函数时形成的 比如 Shell shell = new Shell();Composite parent = new Composite(shell SWT NULL);Composite child = new Composite(parent SWT NULL);   其中parent的父构件是shell 而shell则是程序的主窗口 所以没有相应的父构件 同时parent又包括了child子构件 如果调用shell dispose()方法 应用第二条法则 那么parent和child构件的dispose()方法也会被SWT API自动调用 它们也随之销毁    线程问题   在任何操作平台的GUI系统中 对构件或一些图形API的访问操作都要被严格同步并串行化 例如 在一个图形界面中的按键构件可被设成可用状态(enable)或禁用状态(disable) 正常的处理方式是 用户对按键状态设置操作都要被放入到GUI系统的事件处理队列中(这意味着访问操作被串行化) 然后依次处理(这意味着访问操作被同步) 想象当按键可用状态的设置函数还没有执行结束的时候 程序就希望再设置该按键为禁用状态 势必会引起冲突 实际上 这种操作在任何GUI系统都会触发异常   Java语言本身就提供了多线程机制 这种机制对GUI编程来说是不利的 它不能保证图形构件操作的同步与串行化 SWT采用了一种简单而直接的方式去适应本地GUI系统对线程的要求 在SWT中 通常存在一个被称为 用户线程 的唯一线程 只有在这个线程中才能调用对构件或某些图形API的访问操作 如果在非用户线程中程序直接调用这些访问操作 那么SWTExcepiton异常会被抛出 但是SWT也在* widget Display类中提供了两个方法可以间接的在非用户线程的进行图形构件的访问操作 这是通过syncExec(Runnable)和asyncExec(Runnable)这两个方法去实现 例如 //此时程序运行在一个非用户线程中 并且希望在构件panel上加入一个按键 Display getCurrent() asyncExec(new Runnable() { public void run() {  Button butt = new Button(panel SWT PUSH);  butt setText( Push ); }});   方法syncExec()和asyncExec()的区别在于前者要在指定的线程执行结束后才返回 而后者则无论指定的线程是否执行都会立即返回到当前线程    SWT的扩展 JFace   JFace与SWT的关系好比Microsoft的MFC与SDK的关系 JFace是基于SWT开发 其API比SWT更加易于使用 但功能却没SWT来的直接 比如下面的代码应用JFace中的MessageDialog打开一个警告对话框 MessageDialog openWarning(parent Warning Warning message );   如果只用SWT完成以上功能 语句不会少于 行!   JFace原本是为更加方便的使用SWT而编写的一组API 其主要目的是为了开发Eclipse IDE环境 而不是为了应用到其它的独立应用程序 因此在Eclipse 版本之前 很难将JFace API完整的从Eclipse的内核API中剥离出来 总是要多多少少导入一些非JFace以外的Eclipse核心代码类或接口才能得到一个没有任何编译错误的JFace开发包 但目前Eclipse组织似乎已经逐渐意识到了JFace在开发独立应用程序起到的重要作用 在开发的 版本中 JFace也开始变成了和SWT一样的完整独立的开发包 只是这个开发包还在变动中(笔者写本文时 应用的Eclipse M 版本) JFace开发包的包前缀是以 eclipse jface开头 JAR包的源代码也和SWT一样 也在${你的eclipse安装路径}plugins路径下去找   对开发人员来说 在开发一个图形构件的时候 比较好的方式是先到JFace包去找一找 看是不是有更简洁的实现方法 如果没有再用SWT包去自己实现 比如JFace为对话框提供了很好的支持 除了各种类型的对话框(比如上面用的MessageDialog 或是带有Title栏的对话框) 如要实现一个自定义的对话框也最好从JFace中的Dialog类继承 而不是从SWT中的* widget Dialog继承   应用JFace中的Preference包中的类很容易为自己的软件做出一个很专业的配置对话框 对于Tree Table等图形构件 它们在显示的同时也要和数据关联 例如Table中显示的数据 在JFace 中的View包中为此类构件提供了Model View方式的编程方法 这种方法使显示与数据分开 更加利于开发与维护 JFace中提供最多的功能就是对文本内容的处理 可以在 eclipse jface text * 包中找到数十个与文本处理相关类    与应用程序更近一步   Java程序通常是以class文件的方式发布的 运行class需要JRE或JDK的支持 这又是Java GUI程序的另一个致命的弱点 想象对一个面向广大用户的应用程序来说 无论你的程序功能有多简单 或是你的代码十分的精简 你都不得不让用户去下载一个 M的JRE 那是多么令人沮丧的一件事 而且对程序员来说 Class通常意味着源代码的暴露 反编译的工具让那些居心叵测的人轻易得到你的源代码 虽然有很多对Class的加密方法 但那总是以牺牲性能为代价的 好在我们还有其它的方式可用 把Class编译成exe文件! lishixinzhi/Article/program/Java/gj/201311/27737
2023-08-14 02:17:571

SWT是什么

swing 是sun写的,因为速度问题,ibm后来开发了swt(eclipse就是用swt写的),都是做界面的 swing是传统的java,内存机制和原来的一样,所以在运行起来需要较多内存,速度会比较差些,而且swing是自己去做界面的绘画 而swt的内存有特别控制,虽然不用额外的代码,但是会自己更及时回收,速度据说相对会比较快,跟swing也不同,swt在界面绘制上使用原生窗口足见,因此可以有有ms的风格 另外,swt和swing是不兼容的 大家有兴趣去搜索一篇“swt 内幕”,里头讲到swing的设计者(一个MM哦:),瞒有意思的 说归说,个人还是比较喜欢swing
2023-08-14 02:18:121

swt有linux版本吗

swt没有linux版本。因为连MAC系统的版本都没有linux,目前只有WindowS系统的版本,所以swt没有linux版本。SWT遵循操作系统平台直接支持的线程模型。
2023-08-14 02:18:271

eclipse 如何安装 swt?

一,直接复制SWT的设计者下的文件到Eclipse的插件下既可。二,建一个专门放插件的文件夹,如:月食 myplugins,把下载解压得到的文件夹整个复制到Eclipse的 myplugins下面,完整的路径为:月食 myplugins SWT的设计者食 featurest和日食 myplugins SWT的设计者日食插件。然后,在Eclipse中的根目录下建一个文件夹为链接,目录为Eclipse的环节,在此目录下建一个文本文件SWT的designer.txt,完整路径为:月食链接 SWT的designer.txt,文本文件SWT的designer.txt中的内容为:路径= myplugins\ SWT的设计师。重运行下的eclipse.exe看看,是不是成功了。zhu:引自百度。
2023-08-14 02:18:361

swt有什么样式可以让两个button同时在同排居中

shell.setLayout(new GridLayout()); Composite composite = new YtComposite(shell , SWT.BORDER); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL , true,false)); //设置gridlayout的num为2 composite.setLayout(new GridLayout(2 , false)); Button btnButton = new Button(composite, SWT.PUSH); //设置布局数据,是右对齐,且水平充满 btnButton.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL , true,false)); btnButton.setText("点击1"); Button btnButton2 = new Button(composite, SWT.PUSH); //设置布局数据,是左对齐,且水平充满 btnButton2.setLayoutData(new GridData(SWT.LEFT, SWT.FILL , true,false)); btnButton2.setText("点击2");原理就是,设置两个按钮的右对齐,和左对齐。
2023-08-14 02:19:041

swt文件怎么打开??

用IE就可以直接放。拖到IE里或是用IE打开就成。
2023-08-14 02:19:223

怎么实现SWT窗口间的数据交流

如果你的SWT窗口是在同一个class里面的话,你可以通过定义全局变量来进行数据交流。你可以考虑用两个全局变量,当一个SWT输入了数据到指定的全局变量了以后,将另外一个全局变量设定改变,目标SWT之需要轮询全局变量的设定是不是改变就可以了。如果你的SWT是在两个public class里面的话,你可以考虑使用文件或者是数据库的方式,基本原理跟1里面提到的是一样的,首先将某个文件搞成特定的格式,当swt收到数据了以后,就更行这个文件,另外一个swt不断的轮询这个文件,当发现这个文件的格式有变化,就知道有输入了,然后就可以做事情了。
2023-08-14 02:19:291

java中SWT是不是已经过时了,没有swing好用哦?

原来是Eclipse推出的。。 囧
2023-08-14 02:19:393

swt是仅用于eclipse还是java的基础类库里的?

eclipse 是用Swt开发的,swt是为了开发Eclipse而设计的一个可视化组件,相当的不错,所以说在Eclipse的安装目录下肯定有Swt这个包,同事Swt也是可用用来做应用软件开发的,比起Swing,Awt有很多优势。
2023-08-14 02:19:475

java有了Swing,为什么还要使用SWT呢?

由于在不同的操作系统下,提供的控件是不一样的,AWT采用最小公约数的办法,只提供所有操作系统都有的控件。但后来SUN改变了做法,在Swing里除了JFrame,JWinodows,JDialog(记不太清了,好像是这几个)是调用本地操作系统的控件,其它JPanel,JButton之类的都是绘出来的,所以Swing在所有平台看起来都是一样的外观。这样保持了外观一致性,但牺牲了性能。 IBM更喜欢AWT的实现机制,做出了SWT,SWT采用的是最大公倍数的做法。SWT大部分都是用的本地操作系统的控件,一些在windows里有的控件可能在linux下没有,对这种控件才采用自己绘制的方式。SWT采用类似JAVA虚拟机的方式,在不同的平台,有不同的开发包,我们写的java代码是一样的,但不同平台下看起来外观是不一样的,但性能提升很高,据说和C++做的界面速度差不多:) 也许你会问哪种更好,引一名话:this is equivalent to asking whether a harmmer is better than a screw driver,of course ,a hammer wieldded with sufficient force can probably drive a screw into a wall ,and the butt of a screw can be used in a pinch to knock in a nail. However, a good carpenter keeps both harmer and screw drivers in her tool box and will use the tool that is appropriate for the job at hand. 个人感觉以前java做界面完全没有优势,从外观到性能(我很喜欢Swing的look and feel,可以改变风格),SWT的出现改变了性能上的缺点,再加上JFace,及Eclipse的RCP,我还是倾向于用SWT。
2023-08-14 02:20:021

java swt 焦点事件

filterText.addFocusListener(new FocusAdapter(){ @Override public void focusGained(FocusEvent e) { filterText.selectAll(); } });
2023-08-14 02:20:102

怎么正确的使用SWT进度条

摘要 使用进度条监视器并不像看起来的那么简单,在使用时很容易犯错。这取决于各种因素,像底层实现,显示方式,是否被设定固定数目的工作条目,是否使用了SubProgressMonitor 嵌套,等等。结果可能是完全没问题,也可能是 让人挠头,或者彻底不可用。 本文将指导怎样有效的使用进度条监视器。使用进度条监视器在许多简单的惯例中,有一条是“只知道所知道的,并且仅限于此”。这就是说,不能假设完全了解你所不知道的事情。就像,你不能想当然的认为进度条监视器就是你在IDE中看到的那些图片样子的东西。IProgressMonitor通常,所有的进度条操作都是通过IProgressMonitor接口.进度条监视器具有4中状态,通过接口只可以测到一种状态(当监视器被取消时)。状态的改变是通过如下方法的作用: beginTask(), done() andsetCanceled().PRISTINEIProgressMonitor实例被初始化之后,方法beginTask() 被调用之前的状态。IN_USE方法beginTask()被调用之后的状态,这里要注意 beginTask()只能被调用一次,FINISHEDdone()被调用之后的状态, 它也只能调用一次,并且只能在 beginTask()之后调用。CANCELED进度条被取消之后的状态。要以以下的模式使用进度条:monitor = ? // 获取进度条实例,现在处于 pristine 状态 try { monitor.beginTask(? // 执行工作任务 }finally { monitor.done() } The 一定到保证 done() 最后被执行。子任务用代理使用进度条监视器beginTask()被调用不要多于一次,这种错误经常发生。进度条被传给子任务,子任务没有意识到进度条已经执行了beginTask(),还是按照规定的契约,执行beginTask()方法。除非子任务对此了解,否则传递进度条实例是十分错误的。一般情况下,接受到进度条实例的代码应该假设此实例自己会遵守beginTask()/done()契约。如果子任务也需要进度条,就应该使用SubProgressMonitor作为代理,封装传入的进度条实例。 如下为样例:monitor = ?// 获取进度条实例try { monitor.beginTask(? // 执行任务 ?BR> // 创建一个子任务 someThing.doWork(new SubProgressMonitor(monitor,?) // // 创建右一个子任务 anotherThing.doWork(new SubProgressMonitor(monitor,?) }finally { monitor.done() }每一个doWork()调用得到一个新的SubProgressMonitor 实例。管理条目个数如果确实不知道确切的条目总数,不要随意猜测数字。如果猜大了,数字会走的很慢,然后突然到达100%;如果猜小了,那么会很快到达终点,并且永远停在那里。没有确切总数的话,填写IProgressMonitor.UNKNOWN就可以了。怎样调用 beginTask() 和worked()通常你可以通过两种方式得出你究竟要处理多少条目:一是调用许多不同的方法来得到结果,二是在一个集合中为每一个实例调用同一个方法。每种方式你都可以知道总的条目数(方法的个数或集合的大小)。 你应该将按比例测量出你的总数。如果总数是3 (每个条目工作为worked(1)),你可以把比例定为1000,总数为3000, (每个条目工作为worked(1000) ). 当你要通过SubProgressMonitor将工作传递到子任务中,就要应用这种方式。因为子任务内部的总数和外部是不同的,也许比你定的总数大许多。你要给它们一些缓冲润滑的空间。这样可以避免进度条执行时视觉上的便扭。 样例:monitor = ? // 取到进度条监视器int total = 3 // 总数为3try { monitor.beginTask(total)// 条目1 this.doPart1() monitor.worked(1) // 条目 2 this.doPart2() monitor.worked(1) // 条目 3 this.doPart3() monitor.worked(1) }finally { monitor.done() }这里没有必要按比例放大,也没有集合动态计算。 更详细的样例:monitor = ? int total = thingyList.size() * 3 + 2try { monitor.beginTask(total) // 条目 1 this.doBeforeAllThingies() monitor.worked(1) // 条目 2 to 倒数第二个 for (Thingy t : thingyList) { t.doThisFirst() monitor.worked(1) t.thenDoThat() monitor.worked(1) t.lastlyDoThis() monitor.worked(1) } // 最后一条 this.doAfterAllThingies() monitor.worked(1) }finally { monitor.done() }混合使用子任务在使用子任务的时候,子任务的总数就是分配给它的比例数。 monitor = ? int scale = 1000 int total = 3 try { monitor.beginTask(total * scale)// item 1 this.doPart1() monitor.worked(1 * scale)// item 2 this.doPart2(new SubProgressMonitor(monitor, 1 * scale)) //分配一个条目 monitor.worked(1 * scale) // 这里是不需要的,因为任务的管理有子任务负责// 条目 3 this.doPart3() monitor.worked(1 * scale) }finally { monitor.done() }You worked(). 不要将 IProgressMonitor.UNKNOWN 传给创建的 SubProgressMonitor()子任务进度条的实现只是盲目的使用传入的总数进行计算,当它接受到的是一个负值(IProgressMonitor.UNKNOWN为-1) 它也是按照惯例来进行计算,所以你看到的结果是进度条往回走。 IProgressMonitor.UNKNOWN不能在子任务进度条中使用,但是在父进度条中使用没有这种问题。取消上面的例子中,都没有判断进度条是否被取消。在实际使用中,推荐要及时的进行判断。 monitor = ? try { monitor.beginTask(thingyList.size()) for (Thingy t : thingyList) { if(monitor.isCanceled()) throw new OperationCanceledException(); t.doSomething() monitor.worked(1) } }finally { monitor.done()}The 空进度条这样可以使调用者不用必须传入monitor,只要输入null 就可以了。 public void doIt(IProgressMonitor monitor){ if(monitor == null) monitor = new NullProgressMonitor(); try { monitor.beginTask(thingyList.size()) for (Thingy t : thingyList) { if(monitor.isCanceled()) throw new OperationCanceledException(); t.doSomething() monitor.worked(1) } }finally { monitor.done() } }结论只要遵循这些规则,在使用进度条的时候就不会碰到麻烦。如果不信邪,想当然的用,迟早会出现奇怪的视觉显示,你的客户又要不停的抱怨了。
2023-08-14 02:20:171

JAVA问题

你能不能把代码发下呢?你丢个异常给大家 大家如何分析啊
2023-08-14 02:20:274

如何在SWT中实现 本地打开文件 并显示文件内容

先把每个要显示的数据都要放在一个input或者div里面,并设置一个id,或者name属性,根据getElementById,getElementByName函数取到所要操作的对象,对于input可以用.val()得到值,对于div等自己试试.innerHtml(),.html(),.text()函数看看哪个能取到值。然后把取到的值赋给那个文本框就可以了。示例代码:<input type="file" name="file" accept=".xls" value=""/>
2023-08-14 02:20:371

SWT现在用的多吗?

不是很广,但是也有用的.我下个项目就要用到.
2023-08-14 02:20:443

SWT的获取焦点的问题

用xlib做个窗口通过printf("b2 "); wm_hints->flags |= InputHint; printf("b3 "); wm_hints->input = False; printf("b4 "); XSetWMHints(display, parent, wm_hints); 可以达到失去焦点效果。
2023-08-14 02:21:093

如何用swt实现弹出提示窗口

int style = SWT.APPLICATION_MODAL | SWT.YES | SWT.NO; MessageBox messageBox = new MessageBox(shell, style); messageBox.setText("Information"); messageBox.setMessage("Close the shell?"); event.doit = messageBox.open() == SWT.YES;
2023-08-14 02:21:161

swt如何达到窗口锁定的效果?

楼主在小窗口构造时加个SWT.ON_TOP试试。FileDialog dialog=new FileDialog(new Shell(),SWT.OPEN | SWT.SYSTEM_MODAL | SWT.ON_TOP);
2023-08-14 02:21:232

SWT 添加滚动条问题

思路是没啥问题的,你是滚动菜单没出来是吧。滚动菜单你要这样写,创建滚动菜单scrolledComposite之后,再创建一个parent,然后scrolledComposite.setContent(parent);parent.setSize(parent.computeSize(SWT.DEFAULT, SWT.DEFAULT)); 然后parent记得设置layout这样菜单才会显示,然后循环出来的composite的父组件都要设置成parent。
2023-08-14 02:21:311

Java swt 怎样通过 按不同的按钮 在一个地方 显示 不同的table(如图,按学

jtabpanel可以实现,另个动态table model也可以实现
2023-08-14 02:21:532

你们觉得 swing 和 swt 哪个比较好?

swing 更加丰富
2023-08-14 02:22:022

SWT控件,区分背景色和前景色

其实就是区分背景色和前景色,一般做法是前景色置成黑色或是白色:用RGB颜色去处理: (R + G + B)/3 <=128 前景置白色(R + G + B)/3 > 128 前景置黑色
2023-08-14 02:22:092

“swt”是什么意思?

在Java中,SWT(Standard Widget Toolkit) Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract WindowingToolkit).AWT框架底层使用原生窗口部件(native widgets)构建,只能使用各个平台窗口部件的子集。SWT: 标准部件工具包SWT是一个为Java设计提供了高效的部件工具包,便携式的访的用户界面操作系统并在其上实现
2023-08-14 02:22:301

swt是什么格式?

SWT(Standard Widget Toolkit) Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。 在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit). 虽然AWT框架也使用的是原生窗口部件(native widgets),但是它一直未能突破LCD问题。LCD问题导致了一些主要平台特征的遗失。
2023-08-14 02:22:381

eclipse,新建没有swt?

用手写
2023-08-14 02:22:564

swt中是否有年月日时分秒的日期控件,如何使用

CDateTime dateTime = new CDateTime(shell, CDT.DATE_SHORT | CDT.TIME_SHORT | CDT.DROP_DOWN); dateTime.setPattern("yyyy-MM-dd HH:mm:ss"); 这样就可以出现年月日时分秒控件。
2023-08-14 02:23:101

swt 怎样实现“退出”键功能

最后加一句退出
2023-08-14 02:23:181

Eclipse中的swt需要的jar包

import java.awt.Label;你自己引入了awt的label怎么用SWT的label去掉这行,再导入swt的label就行了
2023-08-14 02:23:262

斐乐fwt和Swt的区别

颜色上的区别。Swt相比较Fwt会稍微的暗一点,但是也没有什么太大的区别。FILA中国一直在持续采购和使用中国棉产区,包括新疆出产的棉花。FILA时尚活力的形象,新颖的设计和高品质的产品给消费者留下了深刻的印象。作为不断打破常规的运动品牌,FILA持续以其不断创新,充满设计感的产品满足不同消费者的需求,以往新锐的原创产品成为今日的金典。
2023-08-14 02:24:061

SWT管理事件循环

while(!shell.isDisposed()){ //如果当前窗口未被销毁 if(!display.readAndDispatch()) display.sleep(); //在窗口没有销毁之前,显示对象处于休眠状态 } display.dispose();//销毁当前对象
2023-08-14 02:24:141

Java 插件开发SWT中布局。用的是gridData

SWT插件用于Java 图形用户界面开发的,可以去其官网下载与Eclipse版本相关的压缩包。本人使用的是Eclipse3.4,下载的SWT包是Designer_v6.7.0_for_Eclipse3.4.zip。(注:SWT必须与Eclipse版本要一致,下载SWT是要看清楚)。将下载的SWT包解压缩,解压后有一个批处理文件和features、plugins文件夹。将这个批处理文件拷贝到eclipse目录,双击运行。然后将该批处理文件删除。将SWT解压包中features、plugins文件夹中的内容全部拷贝到eclipse的相应目录中。(注:有的资料上说:需要将eclipse目录下的configuration目录中,所有org.eclipse.*文件夹都删除。我这样试了,但是这样做Eclipse根本无法启动。所以我的这个方法中不需要这样做,不知到是否与eclipse的版本有关,还需详细考证)。然后启动eclipse,在file-new-other中如果看到designer选项,就证明SWT安装成功了。下来进行插件的注册,我选择的免费注册,不过这样需要填写一个用户的详细资料,然后就会通过email收到一个注册码。步骤:window-Preferences-Designer-Registration and Activation。在select a product to evaluate中选择SWT-Designer。点击next,然后填写你的个人信息。然后就会通过email收到一个Activation key。重新执行上述注册步骤,在Activation Key的文本框中输入通过email收到的key就完成了SWT的免费注册。
2023-08-14 02:24:231

SWT中table控件如何设置文字的对齐方式

Label.setAlignment(swt.CENTER)
2023-08-14 02:24:322

斐乐swt和fwt区别

颜色上的区别。Swt相比较Fwt会稍微的暗一点,但是也没有什么太大的区别。FILA中国一直在持续采购和使用中国棉产区,包括新疆出产的棉花。FILA时尚活力的形象,新颖的设计和高品质的产品给消费者留下了深刻的印象。
2023-08-14 02:24:391

swt怎么实现输入框

import org.eclipse.swt.widgets.Text; Text text = new Text(shell, SWT.BORDER);
2023-08-14 02:24:471

SWT有什么方法可以让生成的shell出现在最前

windows操作系统还可以利用SWT的一个小BUG来达成这种效果,如果需要支持linux则有点问题windows的实现方式为:1.在原窗口打开的时候创建不能获得焦点的窗口,设置属性为隐藏2.需要打开不能获得焦点的窗口时设置可见属性为TRUE因为在原窗口打开的时候不能获得焦点的窗口已隐式打开,点击按钮时控制其显隐,不会获得焦点,这个其实是SWT在WINDOWS中的一个BUG,SHELL源码有注解,而linux版没有此BUG
2023-08-14 02:24:541

如何在SWT中使用AWT、SWING组件

一、将SWING界面嵌套到SWT控件中/* import org.eclipse.swt.awt.SWT_AWT; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell;/** * swt中显示awt控件 final Display display = Display.getDefault(); final Shell shell = new Shell(); shell.setSize(327, 253); shell.setText("SWT Application"); //------------------新插入的界面核心代码---------- shell.setLayout(new RowLayout()); Composite comp = new Composite(shell, SWT.EMBEDDED);//SWT.EMBEDDED必须 java.awt.Frame frame = SWT_AWT.new_Frame(comp);//只能放frame不能放JFrame java.awt.Button button = new java.awt.Button();//可以放JButton等Swing控件 button.setLabel("AWT button"); frame.add(button); //------------------END------------------------ shell.layout(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep();}}}关键之处在于SWT_AWT.new_Frame()方法,得到的是一个java.awt.Frame对象,要显示的AWT,SWING内容都放在它上面就好。BTW, SWT下免费的图表工具好象很少,只能暂时先这样使用JFreeChart了。Update: 如果要在SWT里显示带有动画效果的AWT图形,最好在Frame上先放一个JPanel这样的带有双缓冲的控件,否则图象在运动时会产生明显的闪烁。 二、用SwingWT 三、两种方式的对比 (1)前者不用改用SWING的软件的源代码,后者需要。
2023-08-14 02:25:031

为什么在Eclipse的官网找不到SWT的下载了?

swt是第三方的插件。直接从网上搜就行了。 你从网上搜一下 swt desinger下载。或者留下邮箱,我传给你。
2023-08-14 02:25:103

java swt出错,初学者求解决

额。。我想问,你这写法是什么语言转过来的,看着怪别扭的,大小写之类的全部都没区分。错误的话,应该是,text.setText(null);这个不能设置为null,改成text.setText("");就可以了。
2023-08-14 02:25:451

汽车的SWT什么功能

是汽车管理系统;也是阻燃线
2023-08-14 02:25:541

谁能告诉我swt、jface和swing它们之间有什么区别?它们之间的优劣?还有能同时学习它们吗?

他们都是桌面应用开发技术,只说他们区别的最大特点: SWT的桌面小控件工具集使用了当前操作系统的小工具集,如果遇到当前操作系统没有的控件才会自己去创建,这一特点使SWT开发出来的桌面系统在当前操作系统更和谐,放在windowx下是windows的风格,放在linux下是linux的风格。JFace是SWT的延伸拓展,更高级更强大,例如一些对话框JFace提供了原型,而用SWT的话就得先画shell再往里面放控件自己动手画。 而AWT SWing是一体系,他们完全使用了自己的小控件集,跟操作系统就无关了,放在哪都是开发时的风格样式。 用得多的还是SWT/JFACE,学完SWT/JFace后可以随便翻看一下SWing是怎么创建怎么布局就行了,他们是相通的.更多请参见:http://zhidao.baidu.com/question/14477884.html
2023-08-14 02:26:021