2012-04-01 12 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); 

私は、その上にいくつかの線を描きたいと思います。上記のコードのような画家を使ってみましたが、うまくできませんでした。どのように私は間違っていると私はそれを修正することができますか?

EDIT:

ラインの描画が成功したが、問題はラインがlabelImageの後ろに描かれているということです。どのようにして線を近づけるようにすることができますか?

答えて

2

ラベルにフォーカスを当てているので、非選択と選択スタイルにペインタを適用する必要があります。また、対角線ではなく対角線を描いています。

+0

私は選択されていない、選択されたスタイルを使用しようとしましたが、まだ私は線を描くことができません。 – arthurbc

+0

私は問題を発見しました。この線はlabelImageの後ろに描かれています。だから、私はlabelImageから行をどのように描くことができますか? – arthurbc

+0

画家は定義によって常にコンポーネントの後ろに描きます。コンポーネントを派生させ、paint()をオーバーライドしてその上に描画することができます。 –

1

Labelクラスの派生とpaint(Graphics g)メソッドの実装についてはどうでしょうか。そこで、Graphicsオブジェクト 'g'をdrawlineimageに使用できます。

+0

私はうまくいくと思いますが、Labelクラスの派生方法とオブジェクト 'g'の使い方がわかりません。 カスタムラベルを作成しようとしましたが、動作させることができません。画像は塗りつぶすだけで、線は塗りません。 – arthurbc

関連する問題