我正在做一個涉及處理和RCP的項目。到目前爲止,我已經完成了相當多的工作,並希望在調整RCP窗口大小(用鼠標拖動邊緣)時自動調整處理草圖的大小。如何在調整RCP窗口大小時自動讓草圖在處理中調整大小?
現在很多網站都說resize在處理過程中不被支持,有些則告訴我使用frame.setResizable(true);.當放置在我的public void setup(){}
函數中時,會返回錯誤。
我的下一個選擇是向RCP窗口添加一個調整大小的偵聽器,但是如果我在main或createWindows函數內部實現下面的代碼,它只會返回錯誤。
有人可以幫我嗎?
final Composite b = new Composite(shell, SWT.NONE);
b.addListener(SWT.MouseDown, new Listener() {
public void handleEvent(Event e) {
Tracker tracker = new Tracker(b.getParent(), SWT.RESIZE);
tracker.setStippled(true);
Rectangle rect = b.getBounds();
tracker.setRectangles(new Rectangle[] { rect });
if (tracker.open()) {
Rectangle after = tracker.getRectangles()[0];
b.setBounds(after);
}
tracker.dispose();
}
});
雖然我的代碼如下,我相信你的解決方案應該會更好,無論如何,這個草圖實例的事情將如何完成? –
如果你可以序列化你的狀態,你可以給你的草圖一個函數沿'void setFullState(...){...}'的行,並使用它來重建;開始一個新的草圖,告訴草圖1草圖2存在並讓它使用'void notifyOfNewSketch(PApplat newSketch){newSketch.setFullState(generateState())來傳達它的狀態; }'。這當然不是微不足道的,能夠序列化/反序列化你的狀態需要精確性。如果您專門針對Java和/或JS,則有更好的方法。 –
感謝您的回答,我會研究它。 –