2012-05-20 4 views
0

В draw2d Как рисовать фигуру без границы? Как реализовать CustomBorder для прямоугольников, чтобы удалить границу? Я знаю, если мы реализуем класс, который расширяет границы, а в методе paint - что делать, чтобы удалить границу?прямоугольник без рамки

ответ

2

Цифры не имеют границы, если вы явно не установили ее, вызвав setBorder(..). Если вам просто нужна пустая цифра, которая ничего не рисует, то new Figure() даст вам именно это. Нет необходимости внедрять какие-либо пользовательские границы или цифры. Если вы используете Rectangle, то это именно то, что вы получите: прямоугольник; что вы, вероятно, путаете для границы.

+0

Yaa правда. Но если нарисовать фигуру и попытаться показать ее в холсте, она дает мне пустую фигуру. это означает, что это не видно. Я попытался установить фон, чтобы увидеть, может ли он быть видимым или нет. Но я не мог видеть. Поэтому я предположил, что Цифры в основном представляют собой контейнер, содержащий другие формы. Это верно? Пожалуйста, помогите мне понять. Именно по этой причине я обратился к пользовательскому прямоугольнику без какой-либо границы. – user414967

+0

С изображением "figure.setOpaque (true)" "Фигура" будет рисовать свой цвет фона. – p12t

+0

ohh..Thanks много !!! – user414967

1

Вы можете отключить границу с figure.setBorder(null); или вы можете поместить его в конструктор:

public static class BorderlessFigure extends Figure { 
    public BorderlessFigure() { 
     ToolbarLayout layout = new ToolbarLayout(); 
     setLayoutManager(layout); 
     setBorder(null); 
     add(new Label("test")); 
    } 
} 

Если вы хотите Border, который ничего не окрасить вы можете продлить 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); 
    } 
} 

I не знаю, почему бы вам это сделать.

+0

Привет, Спасибо за предложение. Я пытался таким образом, прежде чем я разместил здесь. Но ничего не получилось. Затем я попытался использовать пользовательскую фигуру, которая расширяет фигуру прямоугольника. Затем я мог рисовать прямоугольник без какой-либо границы. – user414967