Моя цель - нарисовать в ЦЕНТРЕ композита.На самом деле, у меня есть вид rcp, и я рисую некоторые формы внутри него.это код, который я использую:
display = parent.getDisplay();
white= display.getSystemColor(SWT.COLOR_WHITE);
parent.setLayout(new FillLayout(SWT.VERTICAL));
// Create the ScrolledComposite to scroll horizontally and vertically
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(100,100);
Composite child = new Composite(sc,SWT.NONE);
child.setLayout(new FillLayout());
child.layout(true);
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); // to raw the circle
}
});
sc.getDisplay().update();
}
});
Я определил представление с отношением (поэтому, когда представление пусто, я получаю нужный размер) ... Я не знаю точный размервид, поскольку он может быть изменен пользователем в любой момент или когда редактор открыт ... Итак, моя проблема заключается в том, как рисовать только в центре вида и сохранять рисунки в центре, даже если вид был изменен... PS: Используя (Point.x и point.y), я получаю (0,0), когда представление появляется первым, затем я получаю другие значения ... Справка Pleaaaaaaaaaaaaaase