2010-07-26 4 views
0

Я пишу приложение Eclipse RCP и пытаюсь нарисовать прямоугольник поверх ViewPart. Однако прямоугольник, кажется, занимает весь экран даже при определении границ. Ниже приведен мой код.Eclipse/SWT: Прямоугольник занимает весь холст

public void createPartControl(Composite parent) { 
     Shell shell = parent.getShell(); 

     Canvas canvas = new Canvas(parent, SWT.NONE); 
     LightweightSystem lws = new LightweightSystem(canvas); 
     RectangleFigure rectangle = new RectangleFigure(); 
     rectangle.setBounds(new Rectangle(0, 0, 10, 10)); 
     rectangle.setBackgroundColor(ColorConstants.green); 
     lws.setContents(rectangle); 
} 

ответ

1

Я не использовал Draw2D, но я попытался модифицировать свой пример, создав еще один прямоугольник фигуру и добавить его к первому, и что один показывает вверх. То есть

// from your code 
rectangle.setBackgroundColor(ColorConstants.green); 

// new code 
RectangleFigure r2 = new RectangleFigure(); 
r2.setBounds(new Rectangle(0,0,10,10)); 
r2.setBackgroundColor(ColorConstants.blue); 
rectangle.add(r2); 

// back to your code 
lws.setContents(rectangle); 

Это выглядит хорошо для меня - в левом верхнем углу полностью зеленого холста есть маленький синий прямоугольник. Я предполагаю, что фигура, которую вы используете как содержимое холста, по умолчанию (и, вероятно, по необходимости), занимает весь холст.

+0

Благодарим вас за помощь, Ladlestein. Кажется, ты прав. Первый прямоугольник занимает весь холст, несмотря ни на что. –

Смежные вопросы