Размещение фигуры в правом верхнем углу другого
Я хочу, чтобы дочерняя фигура (org.eclipse.draw2d.Figure) была относительно верхнего правого угла родительского элемента (я хочу разместить небольшой значок, который будет ImageFigure, на 12 пикселей от верхней и правой границ). Существует ли существующий менеджер макетов, который может компоновать дочерние таким образом?
Org.eclipse.draw2d.XYLayout не способен измерять положение относительно угла, отличного от верхнего левого.
Конечно, я могу:
- Напиши менеджер макетов сам
- Дочерние элементы макета фигурируют каждый раз, когда для родителя изменяются границы (в методе parent().
Тем не менее, я хотел бы знать, если какой-то существующий менеджер макета обеспечивает такую функциональность.
Обратите внимание, что вопрос касается Eclipse GEF, а не только SWT/JFace или Swing.
2 ответа
Многие макеты позволяют вам расположить компонент справа. FlowLayout, BoxLayout, GridBagLayout. Использование FlowLayout, вероятно, будет самым простым. Вы можете просто установить горизонтальные и вертикальные промежутки на 12 для правильного выравнивания, и это должно решить вашу проблему.
Или же вы можете добавить EmptyBorder к компоненту с верхним / правым вставлением 12, чтобы убедиться, что он расположен именно там, где вам нужно.
Ни один из стандартных менеджеров компоновки не сделает это за вас.
Я могу думать о 2 возможностях:
В контейнере верхнего уровня (JWindow, JDialog, JFrame, JApplet) добавьте стеклянную панель и нарисуйте там иконку.
Создайте границу, которая будет рисовать иконку. Мне скорее нравится эта идея, так как она будет работать с любым JComponent, и ясно, что это украшение для компонента.