正如标题所示,我想添加一个侦听器到我的rcp用户界面以检测最大化和最小化。其实,这不是我的真正目的,但我认为这是解决我的问题的一种方法。我在中心有一些形状的视图,即使窗口调整大小,我仍然将绘图保持在中心位置。要做到这一点,我用下面的听众:以编程方式检测窗口最大化/最小化? Eclipse RCP
public void createPartControl(final Composite parent) {
display = parent.getDisplay();
white= display.getSystemColor(SWT.COLOR_WHITE);
parent.setLayout(new FillLayout(SWT.VERTICAL));
final ScrolledComposite sc = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
sc.setExpandHorizontal(true);
sc.setExpandVertical(true);
sc.setMinHeight(100);
sc.setMinWidth(100);
sc.setSize(565, 305);
final Composite child = new Composite(sc,SWT.NONE);
child.setLayout(new FillLayout());
// Set child as the scrolled content of the ScrolledComposite
sc.setContent(child);
child.setBackground(white);
gc = new GC(child);
parent.addListener (SWT.Resize, new Listener() {
public void handleEvent (Event e) {
x = child.getBounds().width/2;
y = child.getBounds().height/2;
child.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent event) {
dessin(gc); // draw my shapes
}
});
}
一切顺利的话除非我最大化窗口,然后将其最小化,在这种情况下,我失去了绘画(它是在角落)。 有什么想法吗?我是以正确的方式思考?
这个例子中似乎缺少一些重要的代码。但是......当父母看到resize事件时,孩子不一定需要调整大小。 –
哦,是的,你是对的,我必须添加听者的孩子,而不是父母..谢谢 – jean24