SWT经验技巧

本文介绍了在SWT中调整Dialog位置的方法,包括使用`setLocation`和重写`getInitialLocation`。此外,讲解了如何响应TXT文本框的回车事件,以及在SWT中实现回车键等同于按TAB键的功能。还讨论了如何在不同窗口间调用方法,以及如何设置默认按钮以响应Enter键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看文章 SWT经验技巧2007年03月09日 星期五 下午 03:44在SWT中调用Dialog如何指定Dialog弹出时的位置?

1.

    纯swt的Dialog(org.eclipse.swt.widgets.Dialog)

          shell.setLocation(getInitialLocation(shell));

 protected Point getInitialLocation(Shell shell)

   { int x = shell.getParent().getLocation().x+(shell.getParent().getBounds().width-shell.getSize().x)/2;

      int y = shell.getParent().getLocation().y+(shell.getParent().getBounds().height-shell.getSize().y)/2;

     Point location = new Point(x,y); return location; }

2.另:凡是继承自Dialog(org.eclipse.jface.dialogs.Dialog)的对话框类均可复写getInitialLocation()方法,以改变初始位置。

 例:让对话框在上一shell的中间生成;

  这里this.getParentShell()为IWorkbenchWindow对象。

 protected Point getInitialLocation(Point initialSize)

{

 int x = this.getParentShell().getLocation().x+(this.getParentShell().getBounds().width-this.getInitialSize().x)/2;

 int y = this.getParentShell().getLocation().y+(this.getParentShell().getBounds().height-this.getInitialSize().y)/2;

 Point location = new Point(x,y); return location;

}

SWT中的TXT文本框怎么响应回车键事件啊?

 swing下这样

passwordField.addKeyListener(new KeyListener()

{

 public void keyReleased(KeyEvent e)

{}

public void keyTyped(KeyEvent e)

 {}

public void keyPressed(KeyEvent e) {

 if (e.getKeyCode() == KeyEvent.VK_ENTER)

 { 。。。。。 }

else if (e.getKeyCode() == KeyEvent.VK_ESCAPE)

 { System.exit(0); }

 }

}

);

SWT这样也行。

按回车键后变为TAB TraverseListener traverseListener = new TraverseListener()

{

 public void keyTraversed(TraverseEvent e)

 { if (e.keyCode == 13)

 { e.detail = SWT.TRAVERSE_TAB_NEXT; e.doit = true;

}

}

 };

text1.addTraverseListener(traverseListener);

 text2.addTraverseListener(traverseListener);

 swt/jface 如何实现在一个窗口中调用另一个窗口中的方法?

 Workbench.getInstance().getActiveWorkbenchWindow().getActivePage().findView("view id");

通过tableviewer 所在的view来更新

viewer TableViewer tv = new TableViewer(shell,org.eclipse.swt.SWT.NONE);

 tv.getTable().setSize(400,400); shell.setSize(200,400);

TableItem item = new TableItem(tv.getTable(),org.eclipse.swt.SWT.NONE);

item.setText(0,"test");

Widget widget = Display.getDefault().findWidget(tv.getTable().handle);

 传递tv给触发窗口弹出得action 然后在action里面的dialog.open()

后面 tv.refresh; 将按钮设置为默认?

 有时候我们需要在一个界面上作完相关操作之后,直接按Enter确定,但是有时候我们的确定按钮并不是默认的按钮,这里介绍一种简单的方法来将一个按钮设置为默认:

Button defaultButton = ..... Display.getDefault().getActiveShell().setDefaultButton(defaultButton);

这样就可以达到想要的效果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值