Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Java - Wynik metody z innej klasy nie aktualizuje się w drugim wątku.

yvv 06 Mar 2014 22:38 1200 10
  • #1 06 Mar 2014 22:38
    yvv
    Poziom 18  

    Panowie/Panie utknąłem.
    Uczę się Javy, łączę rzeczy wygrzebane w sieci i mam problem z tym, że nie mogę pojąć dlaczego w jednym z wątków wynik pobierany z innej klasy nie updejtuje się.
    W klasie OknoPrzezroczyste tworzę sobie przezroczystą ramkę i mam w niej item listenera, który po przesunieciu okna aktualizuje jego współrzędne i współrzędne jego środka. Niestety w drugim wątku kiedy pobieram te współrzędne to są one nie aktualizowane po przesunięciu okna - są dalej takie same jak na początku.

    0 10
  • Pomocny post
    #2 07 Mar 2014 08:59
    gaskoin
    Poziom 38  

    Wynik nie zmienia się nigdy ?

    Sprawdź debuggerem, czy get location zwraca różne wyniki, czy zawsze to samo. Dane powinny być synchronizowane ze względu na możliwość wystąpienia niespójności pamięci między wątkami.

    Btw, można zrobić to lepiej niż cyklicznie sprawdzając pozycję okna. To okno powinno zawiadamiać swoich słuchaczy, że zmieniło pozycję, a nie na odwrót. Szkoda procesora i czasu na kombinowanie z kodem :)

    http://stackoverflow.com/questions/12838044/detect-drag-of-jframe

    0
  • #3 08 Mar 2014 00:06
    yvv
    Poziom 18  

    Wynik nie zmienia się nigdy w klasie Serce a w klasie OknoPrzeroczyste się zmienia. Dlaczego?

    0
  • #4 08 Mar 2014 09:22
    krru
    Poziom 32  

    Szczerze mówiąc niewiele rozumiem z tego kodu. Tworzysz w pętli mnóstwo obiektów typu OknoPrzezroczyste,
    z każdego odczytujesz raz jakieś wielkości i spodziewasz się, że te wartości będą różne?

    0
  • #5 08 Mar 2014 12:50
    yvv
    Poziom 18  

    @krru
    Twój post jest niepotrzebny. Pytam kogoś kto rozumie.

    0
  • #6 08 Mar 2014 13:07
    mi14chal
    Poziom 28  

    yvv napisał:
    @krru
    Twój post jest niepotrzebny. Pytam kogoś kto rozumie.


    Tylko że jego post jest potrzebny. Popatrz sobie na klasę "serce" i zobacz metodę run którą napisałeś i patrz aż zrozumiesz to co napisałeś.

    0
  • #7 08 Mar 2014 13:27
    yvv
    Poziom 18  

    mi14chal
    Pytam, bo nie rozumiem i grzecznie proszę o wytłumaczenie.

    0
  • #8 08 Mar 2014 15:08
    mi14chal
    Poziom 28  

    Czyli napisałeś taki kod:

    Kod: java
    Zaloguj się, aby zobaczyć kod


    I nie wiesz co on robi?

    0
  • #9 08 Mar 2014 15:19
    yvv
    Poziom 18  

    Powinien pobierać lokalizację okna z listenera z klasy OknoPrzezroczyste podczas zmiany położenia okna i uaktualniać tak jak to się dzieje w klasie OknoPrzezroczyste. Tam się uaktualnia a tutaj nie. Tak jak napisałem nie rozumiem dlaczego nie uaktualnia w klasie Serce. Czy ktoś ma coś konstruktywnego?

    0
  • #10 08 Mar 2014 15:28
    mi14chal
    Poziom 28  

    Akurat ten kod co napisałeś jest bardzo prosty do analizy jest nieskończona pętla która za każdym razem tworzy 4 obiekty wypisuje coś z nich i tyle.

    0
  • #11 08 Mar 2014 16:20
    yvv
    Poziom 18  

    Super dzięki. Pomogłeś.

    0
  Szukaj w 5mln produktów