Прямоугольник без рамки
В draw2d, как я могу нарисовать фигуру, не имея границы? Как реализовать CustomBorder для прямоугольников, чтобы убрать границу? Я знаю, если мы реализуем класс, который расширяет Border, и в методе рисования, что я должен сделать, чтобы удалить границу?
2 ответа
Фигуры не имеют границы, если вы явно не установите ее, вызвав setBorder(..)
, Если вы просто хотите пустую фигуру, которая ничего не рисует, то new Figure()
даст вам только это. Нет необходимости реализовывать какие-либо пользовательские границы или фигуры. Если вы используете Rectangle
тогда это именно то, что вы получите: прямоугольник; это то, что вы, вероятно, путали за границу.
Вы можете отключить границу с 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);
}
}
Я не знаю, зачем ты это делаешь.