2012-04-01 5 views
1

이미지 라벨이 이렇게 생겼습니다.LWUIT Painter : 이미지 레이블 위에 선을 그리는 방법은 무엇입니까?

Painter painter = new Painter() 
     { 

      public void paint(Graphics g, Rectangle rctngl) 
      { 
       g.setColor(0x000000); 
       g.drawLine(0, 0, 100, 100); 
      } 
     }; 
     mapScreen = new Form("Map"); 
     try 
     { 
      Image image = Image.createImage("/res/Sample.jpg"); 
      Label labelImage = new Label(image); 
      labelImage.setScrollVisible(true); 
      labelImage.setFocus(true); 
      labelImage.getStyle().setBgPainter(painter); 
      mapScreen.addComponent(labelImage); 

나는 그 위에 몇 줄을 그립니다. 위의 코드와 같은 화가를 사용해 보았지만 성공적으로 수행 할 수 없었습니다. 나는 잘못하고 어떻게 해결할 수 있습니까?

편집 :

라인의 도면이 성공하지만 문제는 선이 labelImage 뒤에 그려진 것입니다. 선들이 앞으로 뻗어 나갈 수 있도록 어떻게 만들 수 있습니까?

답변

2

라벨을 포커스로 지정했기 때문에 Unselected 및 Selected 스타일에 페인터를 적용해야합니다. 또한 해협선이 아닌 대각선을 그립니다.

+0

선택되지 않은 선택한 스타일을 사용해 보았지만 여전히 선을 그릴 수 없습니다. – arthurbc

+0

문제점을 발견했습니다. 이 선은 labelImage의 뒤쪽에 그려져 있습니다. 그러면 labelImage에서 어떻게 선을 그릴 수 있습니까? – arthurbc

+0

화가는 정의에 따라 항상 구성 요소를 그립니다. 구성 요소를 파생시키고 페인트()를 재정 의하여 그 위에 그릴 수 있습니다. –

1

Label 클래스를 파생시키고 paint(Graphics g) 메소드를 구현하는 것은 어떨까요? 여기서 Graphics 개체 'g'를 draw, lineimage에 사용할 수 있습니다.

+0

나는 그것이 작동하지만 Label 클래스를 파생하는 방법과 객체 'g'를 사용하는 방법을 잘 모르겠다 고 생각합니다. 사용자 지정 레이블을 만들려고했지만 이미지를 그릴 수는 있지만 선을 그릴 수는 없습니다. – arthurbc

관련 문제