2012-04-01 57 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

您需要将画家应用于“未选定”和“选定”样式,因为您已给标签焦点。你也在绘制一条对角线,而不是一条直线。

+0

我尝试过使用未选中和选定的样式,但仍然无法画出线条。 – arthurbc 2012-04-10 14:39:57

+0

我发现了这个问题。该行已被绘制在labelImage的后面。那么我怎样才能从labelImage中画出线? – arthurbc 2012-04-10 15:05:36

+0

画家总是按照定义绘制组件。您可以派生组件并覆盖paint()以在其上绘制。 – 2012-04-12 04:30:25

1

如何推导Label类和实施paint(Graphics g)方法!在那里,您可以使用Graphics对象'g'至draw,lineimage

+0

我认为这将工作,但我不知道如何派生Label类以及如何使用对象'g'。 我已经尝试创建自定义标签,但我无法使其工作,它只绘制图像而不是线条。 – arthurbc 2012-04-10 16:03:13

相关问题