50,528
社区成员
发帖
与我相关
我的任务
分享
shell.addShellListener(new ShellListener(){
@Override
public void shellClosed(ShellEvent shellevent) {
// TODO Auto-generated method stub
((Shell) shellevent.getSource()).dispose();
}
});
昨天鼓捣了一下午没搞定,
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Decorations;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class MainClass {
public static void main(String[] a) {
final Display display = new Display();
final Shell shell = new Shell(SWT.NO_TRIM | SWT.NONE);
shell.setText("Sash One");
// The SWT.BORDER style
Decorations d = new Decorations(shell, SWT.NO_TRIM);
// d.setLayoutData(new GridData(GridData.FILL_BOTH));
// d.setLayout(new FillLayout());
// Label l = new Label(d, SWT.CENTER);
// l.setText("SWT.NO_TRIM");
//
// d.setBounds(20, 20, 100, 100);
shell.pack();
shell.open();
Display.getCurrent().addFilter(SWT.KeyDown, new Listener() {
public void handleEvent(Event event) {
if (event.keyCode == SWT.F4 && (event.stateMask & SWT.ALT) != 0) {
if (Display.getCurrent().getActiveShell() == shell) {
shell.close();
}
}
}
});
// shell.addListener(SWT.Deactivate, new Listener() {
//
// @Override
// public void handleEvent(Event e) {
// System.out.println(e.keyCode + " " + e.stateMask + " " + e.button + "" );
// shell.setMinimized(true);
// }
// });
shell.addListener(SWT.Close, new Listener() {
@Override
public void handleEvent(Event e) {
System.out.println("fafafafa" + e.keyCode + " " + e.stateMask + " " + e.button + "" );
shell.setMinimized(false);
}
});
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
shell.addListener(SWT.Deactivate, new Listener() {
@Override
public void handleEvent(Event e) {
System.out.println("closeeeeeeeeee" + e.keyCode + " " + e.stateMask + " " + e.button + "" );
shell.setMinimized(true);
}
});
点击任务栏图标最小化时,窗口只会一闪,然后还在原处。
shell.addListener(SWT.Close, new Listener() {
@Override
public void handleEvent(Event e) {
System.out.println("closeeeeeeeeee" + e.keyCode + " " + e.stateMask + " " + e.button + "" );
shell.setMinimized(true);
}
});
点击任务栏关闭图标,根本无法捕获到此事件。
等高手