2012-04-10 270 views
0

我正在嘗試創建自定義Label。我想根據用戶輸入的內容,在Image 上做標記。我真的不知道該怎麼做,但我希望你能知道我在這裏想達到的目標。什麼是派生類Label的正確方法?這是我的代碼。LWUIT標籤:創建自定義標籤

class CustomLabel extends Label 
{ 
    List paths; 
    Image image; 
    public CustomLabel(Image img,List paths) 
    { 
    this.image = img; 
    this.paths = paths; 
    } 

    public void paint(Graphics g) 
    { 
    g.setColor(0x000000); 
    for (int i = 0; i < paths.size(); i++) 
    { 
     Path path = (Path)paths.getModel().getItemAt(i); 
     int firstLocX = path.discoveredNode.getX(); 
     int firstLocY = path.discoveredNode.getY(); 
     int secondLocX = path.nodeDiscovered.getX(); 
     int secondLocY = path.nodeDiscovered.getY(); 
     g.drawLine(firstLocX, firstLocY, secondLocX, secondLocY); 
    } 
    g.drawImage(image, 0, 0); 
    UIManager.getInstance().getLookAndFeel().drawLabel(g, this); 
    } 
} 

我希望你能幫助我。

感謝,

回答

4

因爲你希望你的繪圖出現在你想要的標籤繪製第一,然後讓你的代碼頂部,則不應使用UIManager.getInstance().getLookAndFeel().drawLabel(g, this);

所以在paint方法中的第一行應是super.paint(g)這將照顧到這一點。

您對drawImage的調用將它繪製爲0,0,這總是錯誤的。您應該根據getX()getY()來定位圖紙。

話雖如此,我沒有看到任何擔保子類。如果你只是想畫一個徽章,爲什麼不創建一個樣式,在其背景中與給定的標誌對齊的圖像。然後只是有條件地將正確的UIID分配給標籤。