SWT/Jface ApplicationWindow

简单写了一个如何添加菜单栏的ApplicationWindow。

网上这方面的信息很少。

悲剧

import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
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 HelloJFace extends ApplicationWindow {
 private Composite parent;
 public HelloJFace() {
  super(null);
  addMenuBar();
 }
 /* (非 Javadoc)
  * @see org.eclipse.jface.window.Window#createContents(org.eclipse.swt.widgets.Composite)
  * 该方法负责创建窗口中的控件
  */
 protected Control createContents(Composite parent) {
  this.parent=parent;
  //getShell()方法为父类中的方法,返回窗口的Shell对象
  //设置窗口显示的标题
  getShell().setText("JFace");
  //创建建一个按钮
  Button button = new Button(parent, SWT.CENTER);
  button.setText("JFace Hello!");
  //调整窗口布局
  parent.pack();
  return parent;
 }
 @Override
 protected MenuManager createMenuManager() {
  MenuManager menuManager = new MenuManager("menu");
  menuManager.add(new HelloAction1());
  menuManager.add(new HelloAction2());
  return menuManager;
 }
 @Override
 protected ToolBarManager createToolBarManager(int style) {
  // TODO Auto-generated method stub
  return super.createToolBarManager(style);
 }
 @Override
 protected void createStatusLine(Shell shell) {
  // TODO Auto-generated method stub
  super.createStatusLine(shell);
 }
 public static void main(String[] args) {
  //创建窗口对象
  HelloJFace helloJFace = new HelloJFace();
  //设置窗口处于打开状态
  helloJFace.setBlockOnOpen( true );
  //打开窗口
  helloJFace.open();
  //释放Dipsplay对象
  Display.getCurrent().dispose();
 }
}

HelloAction1 和 HelloAction2 都来自jFace 的action 就可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值