我的第一个swt

           其实现在由于日食的强大,由于插件的强大,要做一个swt可以用很多插件,而且使用这些插件会使开发变得越来越简单,比如Designer插件就是一个很好用的的插件,他使windows开发象net开发一样简单,我们只是使用拖动就可以做出美观的界面,我们的工作只是需要花时间考虑业务逻辑就可以了,但是这种拖动并不能使我们明白到底什么是swt开发,我们怎样实现swt的。所以我还是写了一个只是使用日食自带的swt的jar包,不用插件做的一个简单的windows程序。
         和其他的java程序一样,先我们建立了lib和src的文件夹分别放我们的库文件和源文件,我们的库文件里面放了,这些是做swt开发的必须的库文件。
         然后我们建立一个窗体的类文件myshell,实际上,在SWT中要想创建一个窗口,至少要用到两个类:Display和Shell。Display负责处理所有SWT窗口小部件和操作系统之间的交互,比如我们可以通过Display的方法来查询操作系统:哪个控件获取了焦点,当前打开了哪些窗口等等。简单的说,它的功能在于实现了窗口的管理。与Display不同,Shell的实例为我们提供了真正可见的窗口,该窗口一般作为主窗口使用,我们可以在此放置其它窗口部件。Display其实就是窗体了,但是只是存在于后台,为了使我们能看见,成为可视化的,我们就必须有表现层shell,编写好代码以后,是下面的样子:
package src;

/*import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Button;*/  //下面.*就包含了上面所有的空间类,但是我们也可以依次写
import org.eclipse.swt.widgets.*;

public class MyShell {

 
    MyShell( )    {

        Display display = new Display( );

        Shell shell = new Shell(display);

        Button button=new Button(shell, 0);
        Text text=new Text(shell, 0);
       
       
        shell.setSize(600,600);               //窗体大小
        shell.setText("中华人民共和国");      //窗体标签
 
       
        text.setBounds(100,30,80,50);
        text.setText("我是中国人");
       
        button.setBounds(300,300,50,50);
        button.setText("中国");
       
               
        shell.open( );
       
        while(!shell.isDisposed( )){        //类似于消息循环

            if(!display.readAndDispatch( ))

                display.sleep( );

        }

        display.dispose( );

    }

}

这样我们就画好一个窗体了,然后我们再建立一个main的入口函数MyRunner来显示:
package src;

/*import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;*/
import org.eclipse.swt.widgets.*;

public class MyRunner {

 /**
  * @param args
  * @param MyShell
  */
 public static void main(String[] args) {
  MyShell  myshell = new MyShell( );

 }

}
运行上述代码以后可以显示一个带有按钮和一个文本框的窗体。
如果要实现点击事件的话,我们可以在shell的构造函数里面插入下面代码:
button.addMouseListener(new MouseAdapter(){
            public void mouseDown(MouseEvent e){
                //当用户点击按键的时候,显示信息
 
             text.setText("我是好中国人");
             shell2.open();
            }
        });
然后当我们单击第一个窗体的按钮的时候会弹出一个新的窗体,而且远窗体的text文本框的内容也发生变化
完整的shell代码如下,主函数代码不变:
package src;

/*import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Button;*/
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;

public class MyShell {

 
    MyShell( )    {

        Display display = new Display( );

        Shell shell = new Shell(display);
        final Shell shell2 = new Shell(display);
        Button button=new Button(shell, 0);
        final Text text=new Text(shell, 0);
       
       
        shell.setSize(600,600);
        shell.setText("中华人民共和国");
        shell2.setSize(300,300);
        shell2.setText("广西");
       
        text.setBounds(100,30,80,50);
        text.setText("我是中国人");
       
        button.setBounds(300,300,50,50);
        button.setText("中国");
              
        shell.open( );
        button.addMouseListener(new MouseAdapter(){
            public void mouseDown(MouseEvent e){
                //当用户点击按键的时候,显示信息
 
             text.setText("我是好中国人");
             shell2.open();
            }
        });

        
        while(!shell.isDisposed( )){

            if(!display.readAndDispatch())

                display.sleep( );

        }

        display.dispose( );

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值