0

我希望子图(org.eclipse.draw2d.Figure)相对于父图的右上角(我想放置一些小图标,即 ImageFigure,距离顶部和右侧边框 12 像素)。是否有现有的布局管理器可以以这种方式布局子级?

org.eclipse.draw2d.XYLayout 不能测量相对于左上角以外的角的位置。

当然,我可以:

  1. 自己编写布局管理器
  2. 每次更改父级的边界时,布局子级图(在父级 layout() 方法中)。

但是,我想知道一些现有的布局管理器是否提供该功能。

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

4

2 回答 2

0

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

或者,您可以使用顶部/右侧插入 12 将 EmptyBorder 添加到组件,以确保准确放置在您想要的位置。

于 2010-03-19T15:52:51.757 回答
-1

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

我可以想到两种可能性:

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

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

于 2010-03-19T15:57:55.723 回答