【问题标题】:Placing figure in top-right corner of another将图形放在另一个的右上角
【发布时间】:2010-03-19 09:20:08
【问题描述】:

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

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

当然,我可以:

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

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

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

【问题讨论】:

    标签: java draw2d eclipse-gef


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      没有一个标准的布局管理器会为您做到这一点。

      我能想到两种可能性:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        相关资源
        最近更新 更多