Muszę utworzyć oś czasu z linią pokazującą aktualny czas. Używam AnchorPane z dodaną linią umieszczoną w ScrollPane. Muszę zasymulować 1 dzień, szerokość scrollpane wynosi (2880px, co 60px to jedna godzina). Moje limity to (poprzedni dzień 12 godzin, a następnego dnia 12 godzin). Przenoszenie mojej linii działa poprawnie.JavaFX Jak przewinąć ScrollPane, aby węzeł znajdował się w środku portu widoku?
Wszystko, co trzeba zrobić, to ustawić linię w środku portu widoku i przenieść zawartość pod nią. Dla przesuwając linię Używam tej metody:
scrollPane.setHvalue(line.getStartX() - anchorPane.width);
to działa „niby w porządku”. Treść się porusza, ale linia się przemieszcza. Zaczynam, gdy linia ma wartość 0:00 (pozycja jest ustawiona na 0,25) i kończy gdy pozycja jest (0,75) 24 godziny. Jestem również skalowanie moją linię czasu oś y tak
/* where line position is calculate by scale, scale is x2, x3, x4.... */
scrollPane.setHvalue(line.getStartX() - anchorPane.width * scale);
proszę zobaczyć IMG do godziny: 00:00, 12:00, 24:00 ... Prawidłowa pozycja linia jest jedynie o godzinie 12:00. .. Jak zmodyfikować funkcję, aby ustawić pozycję linii?
W skrócie, zielona linia reprezentuje aktualny czas i chcesz, aby zawsze pozostawał w tej samej pozycji w środku suwaka, podczas gdy wykres na osi czasu przepływa od prawej do lewej. Czy to jest poprawne? –
Tak, dokładnie ... Chcę tylko, żeby ten panel pod zieloną linią się poruszył. (najwyższa oś wiąże się z tym) – kingkong
jakiś pomysł? jakaś pomoc? – kingkong