查看文章 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);
这样就可以达到想要的效果了。