【发布时间】:2012-05-20 15:15:09
【问题描述】:
在draw2d中,如何绘制没有边框的图形? 如何为矩形实现 CustomBorder 以去除边框? 我知道如果我们实现一个扩展边框的类,在paint方法中我应该怎么做才能去除边框?
【问题讨论】:
标签: eclipse-plugin swt eclipse-rcp draw2d
在draw2d中,如何绘制没有边框的图形? 如何为矩形实现 CustomBorder 以去除边框? 我知道如果我们实现一个扩展边框的类,在paint方法中我应该怎么做才能去除边框?
【问题讨论】:
标签: eclipse-plugin swt eclipse-rcp draw2d
除非您通过调用setBorder(..) 明确设置边框,否则图形没有边框。如果您只想要一个不画任何东西的空白图形,那么new Figure() 会为您提供。无需实现任何自定义边框或图形。如果您使用的是Rectangle,那么这正是您将得到的:一个矩形;这可能是您对边界感到困惑的地方。
【讨论】:
Figure 将绘制其背景颜色。
您可以使用figure.setBorder(null); 禁用边框,也可以将其放入构造函数中:
public static class BorderlessFigure extends Figure {
public BorderlessFigure() {
ToolbarLayout layout = new ToolbarLayout();
setLayoutManager(layout);
setBorder(null);
add(new Label("test"));
}
}
如果您想要一个不绘制任何内容的边框,您可以扩展 org.eclipse.draw2d.AbstractBorder:
public class NoBorderBorder extends AbstractBorder {
@Override
public void paint(IFigure f, Graphics g, Insets i) { }
@Override
public Insets getInsets(IFigure f) {
return new Insets(0);
}
}
我不知道你为什么要这样做。
【讨论】: