将图放在另一个的右上角

时间:2010-03-19 09:20:08

标签: java draw2d eclipse-gef

我希望子图(org.eclipse.draw2d.Figure)相对于父图的右上角(我想放置一些小图标,它将是ImageFigure,从顶部和右边框开始是12像素)。是否存在可以通过这种方式布局子项的现有布局管理器?

org.eclipse.draw2d.XYLayout无法测量相对于左上角以外角落的位置。

当然,我可以:

  1. 自己编写布局管理器
  2. 每次为父级更改边界时布局子图(在父布局()方法中)。
  3. 但是,我想知道现有的布局管理器是否提供了这种功能。

    请注意,问题是关于Eclipse GEF,而不是裸SWT / JFace或Swing。

2 个答案:

答案 0 :(得分:0)

许多布局允许您在右侧定位组件。 FlowLayout,BoxLayout,GridBagLayout。使用FlowLayout可能是最简单的。您可以将水平和垂直间隙设置为12使用右对齐,它应该可以解决您的问题。

否则你可以将一个EmptyBorder添加到组件中,其顶部/右侧插入为12,以确保将其精确放置在您想要的位置。

答案 1 :(得分:-1)

标准布局管理器都不会为您做到这一点。

我可以想到两种可能性:

  1. 在顶级容器(JWindow,JDialog,JFrame,JApplet)上添加一个玻璃窗格并在那里绘制图标。

  2. 创建一个将绘制图标的边框。我更喜欢这个想法,因为它适用于任何JComponent,很明显它是组件上的装饰。