Прямоугольник без рамки

В 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);
    }
}

Я не знаю, зачем ты это делаешь.

Другие вопросы по тегам