Размещение фигуры в правом верхнем углу другого - PullRequest
0 голосов
/ 19 марта 2010

Я хочу, чтобы дочерняя фигура (org.eclipse.draw2d.Figure) была относительно верхнего правого угла родительского элемента (я хочу разместить небольшой значок, который будет ImageFigure, на 12 пикселей от верхней и правой границ). ). Существует ли существующий менеджер компоновки, который может макетировать дочерний элемент таким образом?

org.eclipse.draw2d.XYLayout не способен измерять положение относительно угла, отличного от верхнего левого угла.

Конечно, я могу:

  1. Напиши менеджер верстки сам
  2. Показатели дочерних элементов макета при каждом изменении границ для родителя (в методе parent layout ()).

Однако я хотел бы знать, предоставляет ли какой-либо существующий менеджер компоновки такую ​​функциональность.

Обратите внимание, что речь идет об Eclipse GEF, а не об SWT / JFace или Swing.

Ответы [ 2 ]

0 голосов
/ 19 марта 2010

Ни один из стандартных менеджеров компоновки не сделает это за вас.

Я могу представить 2 варианта:

  1. В контейнере верхнего уровня (JWindow, JDialog, JFrame, JApplet) добавьте стеклянную панель и нарисуйте там значок.

  2. Создайте границу, которая будет рисовать иконку. Мне скорее нравится эта идея, так как она будет работать с любым JComponent, и ясно, что это украшение для компонента.

0 голосов
/ 19 марта 2010

Многие макеты позволяют расположить компонент справа. FlowLayout, BoxLayout, GridBagLayout. Использование FlowLayout, вероятно, будет самым простым. Вы можете просто установить горизонтальные и вертикальные промежутки на 12 для правильного выравнивания, и это должно решить вашу проблему.

Или же вы можете добавить EmptyBorder к компоненту с верхним / правым вставлением 12, чтобы убедиться, что он расположен именно там, где вам нужно.

...