SWT½Ì³ÌÓë³£Óÿؼþ ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/6/30 8:41:26ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

µÚÒ»Õ£ºSWT

µÚÒ»½Ú£ºSWT/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¡£

µÚ¶þ½Ú£º¿ª·¢SWT³ÌÐò

¿ª·¢SWT³ÌÐò֮ǰ£¬ÐèÒªÎÒÃÇÔÚ¹¤³ÌÀïµ¼ÈëÒ»¸ö°ü£¬ÈçÏ£º

¸Ãjar°ü¿ÉÒÔÔÚXXX\\eclipse\\pluginsĿ¼ÏÂÕÒµ½¡£µ¼ÈëÖ®ºó£¬¼´¿É¿ª·¢SWT³ÌÐò¡£

Ò»¸ö×î¼òµ¥µÄSWT³ÌÐò

import org.eclipse.swt.SWT;

import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text;

class HelloSWT { }

public static void main(String[] args) {

// ´´½¨Ò»¸ödisplay¶ÔÏó¡£

Display display = new Display(); // shellÊdzÌÐòµÄÖ÷´°Ìå

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

// ÉùÃ÷Ò»¸ö¿ÉÒÔÏÔʾ¶àÐÐÐÅÏ¢µÄÎı¾¿ò

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ÊÀ½ç£¡\); // ´ò¿ªÖ÷´°Ìå shell.open();

// Èç¹ûÖ÷´°ÌåûÓйرÕÔòһֱѭ»·

while (!shell.isDisposed()) { }

// Èç¹ûdisplay²»Ã¦

if (!display.readAndDispatch()) { display.sleep(); // ÐÝÃß }

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

? DisplayÀࣺÊÇSWTÓ¦ÓóÌÐòÖеĻù´¡À࣬Ëü¸ºÔðÔÚÓ¦ÓóÌÐòºÍ±¾µØ²Ù×÷ϵͳ֮¼ä½¨

Á¢½»»¥¡£ DisplayÀàÊÇ´ÓDevice¼Ì³Ð¶øÀ´¡£

? Display·â×°Á˶Ա¾µØ²Ù×÷ϵͳ×ÊÔ´£¬Ê¼þºÍ¸÷ÖֿؼþµÄ¹ÜÀí£¬ÊÇ¿ª·¢SWTÓ¦ÓóÌÐò

µÄ»ù´¡¡£

?

Shell Ñùʽ

SWT³£ÓÃ×é¼þ

1 °´Å¥×é¼þ

°´Å¥£¨Button£©×é¼þÊÇSWTÖÐ×î³£ÓõÄ×é¼þ£¬ButtonÀàµÄ¹¹Ôì·½·¨ÊÇ£º Button(Composite parent,int style)

¸Ã·½·¨ÓÐÁ½¸ö²ÎÊý£º

1. µÚÒ»¸ö²ÎÊýparentÊÇÖ¸Button´´½¨ÔÚÄÄÒ»¸öÈÝÆ÷ÉÏ¡£Composite£¨Ãæ°å£©ÊÇ×î³£ÓõÄ

ÈÝÆ÷£¬Shell£¨´°Ì壩¼Ì³Ð×ÔComposite£¬´Ë²ÎÊýÒ²ÄܽÓÊÜ ShellºÍÈκμ̳Ð×Ô CompsiteµÄÀà¡£

2. µÚ¶þ¸ö²ÎÊýstyleÓÃÀ´Ö¸¶¨ButtonµÄʽÑù¡£SWT×é¼þ¿ÉÒÔÔÚ¹¹Ôì·½·¨ÖÐʹÓÃʽÑù

£¨style£©À´ÉùÃ÷×é¼þµÄÍâ¹ÛÐÎ×´ºÍÎÄ×ÖµÄʽÑù¡£SWT×é¼þµÄ¹¹Ôì·½·¨ºÍ ButtonÀàÏàËÆ£¬²ÎÊýµÄº¬ÒåÒ²Ïàͬ¡£

1£®Button×é¼þ³£ÓÃʽÑù SWT.PUSH£º°´Å¥¡£

SWT.CHECK£º¶àÑ¡°´Å¥¡£ SWT.RADIO£ºµ¥Ñ¡°´Å¥¡£ SWT.ARROW£º¼ýÍ·°´Å¥¡£ SWT.NONE£ºÄ¬Èϰ´Å¥¡£

SWT.CENTER£ºÎÄ×Ö¾ÓÖУ¬Óë SWT.NONE Ïàͬ¡£ SWT.LEFT£ºÎÄ×Ö¿¿×ó¡£ SWT.RIGHT£ºÎÄ×Ö¿¿ÓÒ¡£ SWT.BORDER£ºÉîÏÝÐͰ´Å¥¡£ SWT.FLAT£ºÆ½ÃæÐͰ´Å¥¡£