zoukankan      html  css  js  c++  java
  • 第一个SWT程序

    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.events.SelectionListener;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Group;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.List;
    import org.eclipse.swt.widgets.MessageBox;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;
    
    
    public class HelloSWT extends Shell{
        
        // 这些都是在下面将要用到的控件
        private static Text text;
        private static Button swtButton;
        private static Button awtButton;
        private static Button swingButton;
        private static Group group;
        private static Button button;
        private static Label benefitOfSwtLabel;
        private static List list;
    
        public static void main(String[] args) {
    
            /**
             * 创建一个Display对象,并使用这个Display创建一个
             * 窗口Shell,并设置它的标题和窗口初始尺寸。因为当
             * 前线程创建了Display对象,所以它是界面线程
             */
            Display display = Display.getDefault();
            final Shell shell = new Shell(display);
            shell.setText("Hello SWT");
            shell.setSize(260, 283);
            
            shell.open();
            
            /**
             * 创建一个Text空间并设置其中文字的内容。然后设置了
             * 空间在窗口中的位置
             * 左上顶点为(10,8),宽度为230,高度为35
             */
            text = new Text(shell, SWT.BORDER);
            text.setText("SWT是Eclipse平台使用的图形工具箱");
            text.setBounds(10, 8, 230, 35);
            
            /**
             * List控件可以用来展示一系列的内容。这里创建了4条内容
             * 的List控件
             */
            list = new List(shell, SWT.BORDER);
            list.setItems(new String[] {
                "使用操作系统本地控件",
                "提供一套平台无关的API",
                "GUI程序的运行速度快",
                "更多更多......"
            });
            
            /**
             * Label控件可以在界面上展示不能修改的文字,通常作为
             * 标签来使用
             */
            benefitOfSwtLabel = new Label(shell, SWT.NONE);
            benefitOfSwtLabel.setText("SWT的优点:");
            benefitOfSwtLabel.setBounds(10, 49, 90, 15);
            
            /**
             * Group对象可以用来把相关的控件组成一组,在这一组控件
             * 的外面会显示出一个边框,将它们和其他控件隔离开来。在边框
             * 上可以加入文字标题以说明这一组控件的作用。
             */
            group = new Group(shell, SWT.NONE);
            group.setText("你使用过哪些图形工具箱?");
            group.setBounds(10, 159, 230, 47);
            
            /**
             * Button类型包含普通按钮,单选按钮,复选按钮等很多形式。
             * 
             */
            awtButton = new Button(group, SWT.CHECK);
            awtButton.setText("AWT");
            awtButton.setBounds(10, 20, 54, 18);
            
            swingButton = new Button(group, SWT.CHECK);
            swingButton.setText("Swing");
            swingButton.setBounds(70, 22, 60, 15);
            
            swtButton = new Button(group, SWT.CHECK);
            swtButton.setBounds(136, 22, 62, 15);
            swtButton.setText("SWT");
            
            button = new Button(shell, SWT.None);
            button.addSelectionListener(new SelectionListener() {
                
                @Override
                public void widgetSelected(SelectionEvent arg0) {
                    MessageBox messageBox = 
                            new MessageBox(shell, SWT.ICON_INFORMATION);
                    messageBox.setMessage("Hello SWT");
                    messageBox.open();
                }
                
                @Override
                public void widgetDefaultSelected(SelectionEvent arg0) {
                    // TODO Auto-generated method stub
                    
                }
            });
            
            button.setText("按一下按钮,向SWT说Hello!");
            button.setBounds(10, 214, 227, 25);
            shell.layout();
            
            while(!shell.isDisposed()) {
                if (!display.readAndDispatch()) {
                    display.sleep();
                }
            }
        }
    }
  • 相关阅读:
    使用特殊构造的5GB文件测试Win2012Dedup功能
    VMWare 回收磁盘空间
    一个极其高效的虚拟机内存冗余消除机制:UKSM
    基于Dedup的数据打包技术
    hadoop集群运行dedup实现去重功能
    Qt编写安防视频监控系统24-自定义悬浮条
    Qt编写百度地图综合应用(在线+离线+区域)
    Qt编写安防视频监控系统23-图片地图
    Qt编写安防视频监控系统22-摄像机搜索
    Qt编写安防视频监控系统21-摄像机管理
  • 原文地址:https://www.cnblogs.com/Night-Watch/p/12069225.html
Copyright © 2011-2022 走看看