关于SWT Shell问题?

liaoningjinbao 2008-04-10 06:48:14
SWT能不能动态改变Shell的Style
...全文
160 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liaoningjinbao 2008-04-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 guoxiaopeng1982 的回复:]
引用 2 楼 liaoningjinbao 的回复:
我想让子Shell在后,让父Shell在前可以实现吗?

应该是可以的,你用swt的
Java codechild = new Shell(parent);

创建一个子窗口后,焦点是在子窗口的,只要你的子窗口不是模态貌似点击父窗口就可以让父窗口在子窗口前面了,你试试看看
[/Quote]

这个看似可以,但子Shell并不在父Shell后面,只是可以操作父Shell
liaoningjinbao 2008-04-21
  • 打赏
  • 举报
回复
谢谢以上的朋友们的回答
shmilycharlene 2008-04-17
  • 打赏
  • 举报
回复
应该是可以的,只要在父Shell在open()之前open()子Shell就可以了.过这样的话 父shell要显示就必须等到子shell关闭
zhltcp 2008-04-15
  • 打赏
  • 举报
回复
XUEXI.
jeff_jian 2008-04-13
  • 打赏
  • 举报
回复
再说一下,这个是在M$下面实现的.
jeff_jian 2008-04-13
  • 打赏
  • 举报
回复
我写了个出来,可以在NO_TRIM与SHELL_TRIM中动态转化,也可以运行.
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class ShellTest implements SelectionListener {
private Display display;
private Shell shell;
private Button button;
private boolean flag = false;

public ShellTest() {
display = new Display();
shell = new Shell(display);
shell.setLayout(new RowLayout());

build();

shell.open();
while (!shell.isDisposed())
if (!display.readAndDispatch())
display.sleep();
display.dispose();
}

private void build() {
button = new Button(shell, SWT.PUSH);
button.setText("Push ME");
button.addSelectionListener(this);
}

public void widgetSelected(SelectionEvent evnt) {
if (flag == true) {
shell.dispose();
flag = false;
shell = new Shell(display, SWT.SHELL_TRIM);
shell.setLayout(new RowLayout());
build();
shell.open();
} else {
shell.dispose();
flag = true;
shell = new Shell(display, SWT.NO_TRIM);
shell.setLayout(new RowLayout());
build();
shell.open();
}
}

public void widgetDefaultSelected(SelectionEvent evnt) {

}

public static void main(String[] args) {
new ShellTest();
}
}
guoxiaopeng1982 2008-04-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liaoningjinbao 的回复:]
我想让子Shell在后,让父Shell在前可以实现吗?
[/Quote]
应该是可以的,你用swt的
child = new Shell(parent);
创建一个子窗口后,焦点是在子窗口的,只要你的子窗口不是模态貌似点击父窗口就可以让父窗口在子窗口前面了,你试试看看
iider 2008-04-11
  • 打赏
  • 举报
回复
饿……第一次见一个进程起2个shell的

试了下,ms不能
liaoningjinbao 2008-04-10
  • 打赏
  • 举报
回复
我想让子Shell在后,让父Shell在前可以实现吗?
iider 2008-04-10
  • 打赏
  • 举报
回复
ms不能,不过你可以在这个shell里放一个顶满的composite
需要换style的时候,把这个composite按需要的style重新new一下

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧