简单的JFace ApplicationWindow例程

新公司新环境,现在这家公司有个系统的client是基于SWT/JFace的界面开发。第一眼看到一个Display的例子时,感觉真是麻烦,还要循环去等待消息传递,很简单的MessageBox都要while(true)。但是经过一两天的揣摩,对swt的运行机制有初步的了解后,感觉同awt虽然有一点区别,但共通性很强,所以还是很好上好的^_^。对于刚刚接触的我来说,纯手写swt界面,外观实在不怎么样-_-#。

贴一段simple example,自己留念一下 ^_^
package  TestJFace;

import  org.eclipse.jface.dialogs.MessageDialog;
import  org.eclipse.jface.window.ApplicationWindow;
import  org.eclipse.swt.SWT;
import  org.eclipse.swt.events.SelectionAdapter;
import  org.eclipse.swt.events.SelectionEvent;
import  org.eclipse.swt.widgets.Button;
import  org.eclipse.swt.widgets.Composite;
import  org.eclipse.swt.widgets.Control;
import  org.eclipse.swt.widgets.Display;
import  org.eclipse.swt.widgets.Shell;

public   class  SimpleAppWindow  extends  ApplicationWindow  
{
    
public SimpleAppWindow()
    
{
        
super(null);
    }

    
    
public void show()
    
{
        setBlockOnOpen(
true);
        open();
    }

    
    
protected Control createContents(final Composite parent)
    
{
        Button b 
= new Button(parent , SWT.PUSH);
        b.setText(
"button");
        b.addSelectionListener(
new SelectionAdapter()
        
{
            
public void widgetSelected(SelectionEvent ex)
            
{
                MessageDialog.openConfirm(parent.getShell(), 
"title""button 1 pressed");
            }

        }
);
        
return parent;
        
    }

    
    
protected void configureShell(Shell shell)
    
{
           
super.configureShell(shell);
        shell.setText("练习");       
    }

}


package  TestJFace;

import  org.eclipse.swt.widgets.Display;


public   class  AppMain 
{
    
public static void main(String[] args)
    
{
        
new SimpleAppWindow().show();
        Display.getCurrent().dispose();
    }

}

上面的代码,extends ApplicationWindow 后,创建一个Button 再给button增加一个监听 ,就差不多实现一个最简单的例子。继续jface的ApplicationWindow后,最明显的一个改观就是。不用我再去
while ( ! shellTop.isDisposed())
{
    
if(!display.readAndDispatch())
        display.sleep();
}
这个过程,真的另人相当的不快。另外ApplicationWindow有现成的菜单栏、工具栏、状态栏。只需要做少量的代码,就可以实现。不想写了,下次继续。最后加一张用于applicationwindow的widget关系图。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值