Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将图形放置在另一个图形的右上角_Java_Draw2d_Eclipse Gef - Fatal编程技术网

Java 将图形放置在另一个图形的右上角

Java 将图形放置在另一个图形的右上角,java,draw2d,eclipse-gef,Java,Draw2d,Eclipse Gef,我希望子图org.eclipse.draw2d.figure相对于父图的右上角,我希望放置一些小图标,即ImageFigure,距离上边框和右边框12像素。是否有一个现有的布局管理器可以这样布局子级 org.eclipse.draw2d.XYLayout无法测量相对于左上角以外的角的位置 当然,我可以: 自己编写布局管理器 每次更改父布局方法中父布局的边界时,布局子图形。 但是,我想知道现有的一些布局管理器是否提供了该功能 请注意,问题是关于EclipseGEF的,而不是裸SWT/JFace或S

我希望子图org.eclipse.draw2d.figure相对于父图的右上角,我希望放置一些小图标,即ImageFigure,距离上边框和右边框12像素。是否有一个现有的布局管理器可以这样布局子级

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

当然,我可以:

自己编写布局管理器 每次更改父布局方法中父布局的边界时,布局子图形。 但是,我想知道现有的一些布局管理器是否提供了该功能


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

许多布局允许您将组件放置在右侧。FlowLayout、BoxLayout、GridBagLayout。使用FlowLayout可能是最简单的。您只需将水平和垂直间隙设置为12,即可使用正确的对齐方式,这将解决您的问题


或者,您可以向组件添加一个空订单,顶部/右侧插入为12,以确保其准确放置在您想要的位置。

没有一个标准布局管理器会为您这样做

我可以想到两种可能性:

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

创建用于绘制图标的边框。我很喜欢这个想法,因为它可以与任何JComponent一起使用,而且很明显,它是组件上的一种装饰