正如標題所示,我想添加一個偵聽器到我的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