2012-05-20 7 views
0

draw2d에서 테두리없이 그림을 그릴 수 있습니까? 테두리를 제거하기 위해 사각형에 CustomBorder를 구현하는 방법은 무엇입니까? 테두리를 확장하는 클래스를 구현하고 페인트 메서드에서 테두리를 제거하려면 어떻게해야하는지 알고 있습니다.테두리가없는 사각형

답변

2

setBorder(..)을 명시 적으로 설정하지 않으면 그림에 테두리가 없습니다. 무언가를 그려주지 않는 빈 그림을 원한다면 new Figure()을 사용하면됩니다. 사용자 정의 테두리 또는 수치를 구현할 필요가 없습니다. Rectangle을 사용하는 경우 정확하게 얻을 수 있습니다 : 직사각형; 그것은 당신이 아마 국경을 위해 혼란스러워했던 것이다.

+0

예. 그러나 그림을 그려서 캔버스에 표시하려고하면 빈 그림이 나에게 줄 것입니다. 그것은 그것이 보이지 않는다는 것을 의미합니다. 나는 그것이 보이게 할 수 있는지 아닌지를 알기 위해 배경을 설정하려고 노력했다. 그러나 나는 볼 수 없었다. 그래서 Figure는 기본적으로 다른 모양을 포함하는 컨테이너의 일종이라고 가정했습니다. 그 맞습니까? 제발 이해시켜주세요. 그것이 경계선없이 사용자 정의 직사각형으로 접근 한 이유입니다. – user414967

+0

"figure.setOpaque (true)"를 사용하면 그림이 배경색을 그립니다. – p12t

+0

오오 .. 많이 고맙습니다! – user414967

1

당신은 figure.setBorder(null);와 국경을 비활성화하거나 생성자에 넣어 수 있습니다

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 : 당신은 아무것도 그리지 않는 국경을 원하는 경우에

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

당신이 org.eclipse.draw2d.AbstractBorder을 확장 할 수 있습니다 왜 그렇게 할 지 모르겠다.

+0

안녕하세요, 제안 해 주셔서 감사합니다. 내가 여기 게시하기 전에 그런 식으로 시도했다. 그러나 전혀 작동하지 않았습니다. 그런 다음 Rectangle 그림을 확장하는 사용자 정의 그림을 사용하려고했습니다. 그러면 어떤 경계도 가지지 않고 직사각형을 그릴 수 있습니다. – user414967

관련 문제