Java³ÌÐòÉè¼ÆÖ®swt½Ì³Ì ÏÂÔØ±¾ÎÄ

µÚ4Õ SWTͼÐÎÓû§½çÃæ

±¾ÕÂÒªµã

1£® SWT³ÌÐò¿ª·¢²½Öè¡£ 2£® SWT³£ÓÃ×é¼þµÄʹÓᣠ3£® SWTµÄ²¼¾Ö¡£ 4£® SWTµÄʼþ´¦Àí¡£ 5£® SWT Designer¼ò½é¡£ ±¾ÕÂÄѵã

1£® SWT³£ÓÃ×é¼þµÄʹÓᣠ2£® SWTµÄ²¼¾Ö¡£ 3£® SWTµÄʼþ´¦Àí¡£

4.1SWT/JFace¼ò½é

SWT£¨Standard Widget Toolkit£©¼´±ê׼С´°¿Ú¹¤¾ßÏ䣬ÊÇIBM¹«Ë¾ÍƳöµÄÒ»ÖÖÔÚEclipseÖÐʹÓõļ¯³É¿ª·¢»·¾³£¬SWTÌṩ¿ÉÒÆÖ²µÄAPI£¬²¢Óëµ×²ã±¾»úOS GUIƽ̨½ôÃܼ¯³É£¬ËüÊÇÒ»¸öÓë±¾µØ´°¿Úϵͳ¼¯³ÉÔÚÒ»ÆðµÄС²¿¼þ¼¯ºÍͼÐο⡣SWTÓÉJNI£¨Java Native Interface£¬Java±¾»ú½Ó¿Ú£©µ÷ÓòÙ×÷ϵͳµÄÄÚ²¿API£¬Òò´ËÔËÐÐËٶȿ죬Äܹ»»ñµÃÓë²Ù×÷ϵͳµÄÄÚ²¿Ó¦ÓóÌÐòÏàͬµÄÍâ¹Û¡£

JFaceÊÇÒ»¸öÓû§½çÃæ¹¤¾ßÏ䣬ҲÊÇÒ»¸öÒ×Óᢹ¦ÄÜÇ¿´óµÄͼÐΰü£¬Ëü¼ò»¯Á˳£¼ûµÄͼÐÎÓû§½çÃæµÄ±à³ÌÈÎÎñ¡£SWTºÍJFace¶¼ÊÇEclipseƽ̨ÉϵÄÖ÷Òª×é¼þ¡£JFaceÊÇÔÚSWTµÄ»ù´¡ÉÏ´´½¨µÄ£¬µ«JFace²¢²»ÄÜÍêÈ«¸²¸ÇSWTµÄ¹¦ÄÜ£¬JFaceºÍSWTµÄ¹ØÏµÈçͼ4.1Ëùʾ¡£ÓÉÓÚJFaceµÄ¹¦ÄܸüÇ¿´ó£¬Òò´Ë×öͼÐνçÃæ¿ª·¢Ê±Ò»°ãÓÅÏÈÑ¡ÓÃJFace¡£

ͼ4.1 JFaceºÍSWTµÄ¹ØÏµ

4.1.1 SWT³ÌÐò¿ª·¢²½Öè

ÔÚeclipseµÄpluginsĿ¼Ï£¬ÕÒµ½Îļþorg.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar£¬ÎļþÃûÖÐÖÐ3.2.1ÊÇeclipseµÄ°æ±¾ºÅ£¬v3235ÊÇSWTµÄÐòÁкţ¬²»Í¬µÄeclipse°æ±¾ÕâÁ½¸öÊý×ÖÒ²²»Í¬¡£ÔÚDOS״̬Ï£¬ÓÃjarÃüÁ¸ÃÎļþ½âѹ£¬ÃüÁî¸ñʽÈçÏ£º

jar xf org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar

¸ÃÃüÁָ¶¨µÄÎļþorg.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar½âѹµ½µ±Ç°Ä¿Â¼Ï¡£½âѹºóµÃµ½ËĸöDLLÎļþ£ºswt-win32-3235.dll£¬swt-awt-win32-3235.dll£¬swt-gdip-win32-3235.dllºÍswt-wgl-win32-3235.dll¡£ÕâËĸöÎļþ¾ÍÊÇSWTµÄÔ­Éú¿âÎļþ¡£Ô­Éú¿âÎļþΪSWTͨ¹ýJNI·ÃÎÊwindows±¾µØAPIÌṩÁ˽ӿڣ¬ÎªÊ¹Java³ÌÐòÔÚÆô¶¯Ê±Äܹ»·ÃÎÊÕâЩÎļþ£¬¿ÉÒÔͨ¹ýÒÔÏ·½·¨½øÐÐÉèÖãº

·½·¨Ò»£º½«ÕâËĸöDLLÎļþ¸´ÖƵ½jreµÄbinĿ¼Ï¡£

·½·¨¶þ£ºÉèÖû·¾³±äÁ¿£¬ÔÚPATHÖмÓÈëÕ⼸¸ödllÎļþËùÔÚµÄĿ¼¡£ ·½·¨Èý£ºÔÚeclipseµÄJavaÏîÄ¿Öе¼ÈëÔ­Éú¿âÎļþ¡£²Ù×÷·½·¨ÊÇ£º

ÔÚeclipseµÄ°ü×ÊÔ´¹ÜÀíÆ÷ÖУ¬ÓÒµ¥»÷ÏîÄ¿Ãû¡úµ¼Èë¡ú³£¹æ¡úÎļþϵͳ¡úÏÂÒ»²½¡úä¯ÀÀ¡úÑ¡ÔñDLLÎļþËùÔÚĿ¼¡úÈ·¶¨¡ú¹´Ñ¡DLLÎļþ¡úÍê³É¡£

µ¼ÈëSWTµÄÔ­Éú¿âÎļþºó£¬»¹ÒªÔÚeclipseµÄJavaÏîÄ¿ÖÐÅäÖù¹½¨Â·¾¶£¬Ìí¼ÓÍⲿJAR£¬½«Îļþorg.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar¼ÓÈëµ½ÏîÄ¿ÖУ¬²Ù×÷·½·¨ÊÇ£º

ÔÚeclipseµÄ°ü×ÊÔ´¹ÜÀíÆ÷ÖУ¬ÓÒµ¥»÷ÏîÄ¿Ãû¡ú¹¹½¨Â·¾¶¡úÅäÖù¹½¨Â·¾¶¡ú¿â£¨L£©¡úÌí¼ÓÍⲿJAR¡úÔÚeclipseµÄpluginsÎļþ¼ÐÖÐÕÒµ½¸ÃjarÎļþ¡ú´ò¿ª¡úÈ·¶¨¡£

Àý4.1 ÔÚJavaÓ¦ÓóÌÐòÖÐʹÓÃSWTµÄ×é¼þ¡£ ²Ù×÷²½Ö裺

¢Ù н¨Ò»¸öJavaÏîÄ¿£¬ÏîÄ¿ÃûΪ£ºsample4_1¡£ ¢Ú ²ÉÓ÷½·¨ÈýÔÚÏîÄ¿Öе¼ÈëÔ­Éú¿âÎļþ¡£

¢Û ÅäÖù¹½¨Â·¾¶£¬½«org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar¼ÓÈëµ½ÏîÄ¿ÖС£eclipse°ü×ÊÔ´¹ÜÀíÆ÷¿ÉÒÔ¿´µ½µ¼ÈëµÄÔ­Éú¿âÎļþºÍÒýÈëµÄjarÎļþ£¬Èçͼ4.2Ëùʾ¡£

¢Ü ÔÚÏîÄ¿ÖÐн¨Ò»¸öÀ࣬ÎļþÃûΪHelloSWT.java¡£ ¢Ý ÔÚÀàÎļþÖÐдÈë´úÂë¡£

ͼ4.2 °ü×ÊÔ´¹ÜÀíÆ÷ ͼ4.3 ³ÌÐòÔËÐнá¹û HelloSWT.javaÎļþÄÚÈÝÈçÏ£º

package edu.ch4;

import org.eclipse.swt.SWT;

import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.graphics.*; class HelloSWT {

public static void main(String[] args) {

Display display=new Display();//´´½¨Ò»¸ödisplay¶ÔÏó¡£ Shell shell=new Shell(display);//shellÊdzÌÐòµÄÖ÷´°Ìå

} }

shell.setLayout(null); //ÉèÖÃshellµÄ²¼¾Ö·½Ê½

Text hello=new Text(shell,SWT.MULTI); //ÉùÃ÷Ò»¸ö¿ÉÒÔÏÔʾ¶àÐÐÐÅÏ¢µÄÎı¾¿ò shell.setText(\Ó¦ÓóÌÐò\); //ÉèÖÃÖ÷´°ÌåµÄ±êÌâ shell.setSize(200,100); //ÉèÖÃÖ÷´°ÌåµÄ´óС

Color color=new Color(Display.getCurrent(),255,255,255);//ÉùÃ÷ÑÕÉ«¶ÔÏó shell.setBackground(color); //ÉèÖô°ÌåµÄ±³¾°ÑÕÉ«

hello.setText(\ÄãºÃ£¬SWTÊÀ½ç£¡\);//ÉèÖÃÎı¾¿òÐÅÏ¢ hello.pack(); //×Ô¶¯µ÷ÕûÎı¾¿òµÄ´óС //shell.pack(); //×Ô¶¯µ÷ÕûÖ÷´°ÌåµÄ´óС shell.open(); //´ò¿ªÖ÷´°Ìå

while(!shell.isDisposed()){ //Èç¹ûÖ÷´°ÌåûÓйرÕÔòһֱѭ»· }

display.dispose(); //Ïú»Ùdisplay

if(!display.readAndDispatch()){ //Èç¹ûdisplay²»Ã¦ display.sleep(); //ÐÝÃß }

ÔÚ°ü×ÊÔ´¹ÜÀíÆ÷ÖУ¬ÓÒµ¥»÷ÎļþÃûHelloSWT.java¡úÔËÐз½Ê½¡úJavaÓ¦ÓóÌÐò£¬³ÌÐòÔËÐÐ

½á¹ûÈçͼ4.3Ëùʾ¡£¸Ã´°Ìå¾ßÓеäÐ͵ÄWindows·ç¸ñ¡£

·ÖÎö±¾ÀýµÄÔ´´úÂ룬¿ÉÒÔ¿´µ½£¬´´½¨Ò»¸öµäÐ͵ÄSWTÓ¦ÓóÌÐòÐèÒªÒÔϲ½Ö裺 ¢Ù´´½¨Ò»¸öDisplay ¢Ú´´½¨Ò»¸ö»ò¶à¸öShell ¢ÛÉèÖÃShellµÄ²¼¾Ö ¢Ü´´½¨ShellÖеÄ×é¼þ

¢ÝÓÃopen()·½·¨´ò¿ªShell´°Ìå ¢Þдһ¸öʼþת·¢Ñ­»· ¢ßÏú»Ùdisplay

4.1.2 SWTÖеİü

SWTÊÇEclipseͼÐÎAPIµÄ»ù´¡£¬±¾½Ú¼òµ¥½éÉÜÒ»ÏÂSWTÖг£Óõİü¡£

1£®org.eclipse.swt.widgets

×î³£ÓõÄ×é¼þ»ù±¾¶¼Ôڴ˰üÖУ¬ÈçButton¡¢Text¡¢Label¡¢ComboµÈ¡£ÆäÖÐÁ½¸ö×îÖØÒªµÄ×é¼þÊÇShellºÍComposite¡£ShellÏ൱ÓÚÓ¦ÓóÌÐòµÄÖ÷´°Ì壻CompositeÊÇÈÝÄÉ×é¼þµÄÈÝÆ÷£¬Ï൱ÓÚSWINGÖеÄPanel¶ÔÏó¡£

2£®org.eclipse.swt.layout

Ö÷ÒªµÄ½çÃæ²¼¾Ö·½Ê½Ôڴ˰üÖС£SWT¶Ô×é¼þµÄ²¼¾ÖÒ²²ÉÓÃÁËAWT/SWINGÖеÄLayoutºÍLayout Data½áºÏµÄ·½Ê½¡£

3£®org.eclipse.swt.custom

¶ÔһЩ»ù±¾Í¼ÐÎ×é¼þµÄÀ©Õ¹Ôڴ˰üÖУ¬±ÈÈçÆäÖеÄCLabel¾ÍÊǶԱê×¼Label×é¼þµÄÀ©Õ¹£¬ÔÚCLabelÉÏ¿ÉÒÔͬʱ¼ÓÈëÎÄ×ÖºÍͼƬ¡£Ôڴ˰üÖл¹ÓÐÒ»¸öеIJ¼¾Ö·½Ê½StackLayout¡£

4£®org.eclipse.swt.event

SWT²ÉÓÃÁ˺ÍAWT/SWINGÒ»ÑùµÄʼþÄ£ÐÍ£¬ÔÚ°üÖпÉÒÔÕÒµ½Ê¼þ¼àÌýÀàºÍÏàÓ¦µÄÊÂ