J2ME - tło kontenera

0

Witajcie,
Mam problem.
Tworzę kontener z czarnym tłem, dodaję do kontenera obraz, następnie dynamicznie tworzę na obrazie labele, które po zaznaczeniu mają tło kontenera czyli czarne, a zależy mi aby labele miały tło obrazu. Jak to zrobić?

Czekam na pomysły,
Pozdrawiam,
piter

0

Rozumiem że więcej informacji już nie udzielisz? Może tak kod pokażesz, albo jakiej biblioteki graficznej używasz whatever...

0

Sposób 1 (tradycyjny):
Kontroluj współrzędne labeli, na ich podstawie określ, który kawałek obrazka będzie leżał pod każdym z nich indywidualnie i odrysowuj nim tło labela (lub dowolnego innego komponentu). Taka sama metoda jest używana do tworzenie komponentów lub okienek o nieprostokątnym kształcie. Wadą rozwiązania jest dwukrotne odmalowywanie tego samego obszaru ekranu - raz przez metodę odrysowującą obrazek na kontenerze, a drugi raz w komponencie gui. Ta wada staje się nieakceptowalna jeżeli położenie labeli musi być przesuwane w czasie rzeczywistym (np. animowane). Efektem będzie wtedy migotanie odmalowywanego obszaru.

Sposób 2:
Szukasz po źródle kodu labela gdzie jest instrukcja odmalowująca cały obszar komponentu za pomocą koloru tła (w J2SE byłoby to fillRect lub clearRect). Jeżeli nie znajdziesz na pierwszym poziomie, to szukasz w przodku. Następnie tworzysz "od nowa" komponent taki jak label dziedzicząc od najstarszego przodka (może użyć oryginalnych źródeł*), w którym odmalowywanie komponentu występuje. Jednak znalezione odmalowywanie usuwasz w swojej wersji. W kontenerze używasz tak spreparowanego elementu , więc każde odmalowanie pozostawi w miejscu tła labela "dziurę" (reszta powinna się prawidłowo odmalować). Miejsce dziury powinno być (z automatu) wypełniane w kolejności odmalowywania - czyli przez kontener. W ten sposób nic nie robiąc uzyskasz właściwy efekt. Zarówno kontener jak i label powinny być "lekkie". Inaczej odmalowywanie tła może być wymuszone niżej (np. przez system lub trudno dostępną część kodu Javy). Zaletą jest to, że na wolnych urządzeniach graficznych "nic nie robienie" jest bardzo szybkie. :)
W niektórych przypadkach żeby osiągnąć ten sam efekt wystarczy skorzystać z normalnego dziedziczenia i możliwości javowego gui.

    • legalność dyskusyjna
0

problem rozwiązany, dziękuję za pomoc/

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0