Размещение фигуры в правом верхнем углу другого

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

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

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

  1. Напиши менеджер макетов сам
  2. Дочерние элементы макета фигурируют каждый раз, когда для родителя изменяются границы (в методе parent().

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

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

2 ответа

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

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

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

Я могу думать о 2 возможностях:

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

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

Другие вопросы по тегам