2013-10-01 18 views
6

Pracuję nad aplikacją JavaFX, w której opracowana przeze mnie klasa (rozszerzona z javafx.scene.Parent) jest tworzona "w locie" na podstawie wpisu, który użytkownik kliknął w kontrolce ListView.Węzły JavaFX - jak zmusić ich do zmiany rozmiaru przez użytkownika końcowego?

Aby być czystym na temat tego węzła, nie jest on tworzony przy użyciu narzędzia do projektowania układu, takiego jak SceneBuilder, jest tworzony w czasie wykonywania na podstawie działań użytkownika.

Konstruktor dla mojej niestandardowej klasy węzłów tworzy VBox i etykietę oraz wykorzystuje przekazane współrzędne (X, Y) w metodzie konstruktora, aby ustawić własne współrzędne układu. Następnie używam niestandardowej klasy narzędziowej, aby węzeł był przeciągalny. Ten nowy węzeł jest następnie dodawany do głównego okienka aplikacji.

Jednak nie udało mi się dowiedzieć, w jaki sposób mogę zmienić rozmiar tych węzłów przez użytkownika. To znaczy pozwól użytkownikowi na przesuwanie wskaźnika myszy nad róg węzła, przytrzymaj i przeciągnij, aby zmienić rozmiar. Operacja, do której wszyscy użytkownicy są przyzwyczajeni, bez względu na system operacyjny.

Czy ktoś zrobił coś takiego w JavaFX? (Moje poszukiwania na ten temat wydają tylko podciągnąć przedmiotów na funkcji automatycznej zmiany rozmiaru, że węzeł rodzic robi z jego węzłów potomnych.)

Wielkie dzięki,

Ian.

Odpowiedz

0

Jak widać na documentation of VBox można jedynie określić preferowany minimum, a maksymalny zasięg, tam naprawdę nie jest to sposób, aby to ręcznie skalowalny.

Jedynym właściwym rozwiązaniem dla rozwiązania problemu jest stworzenie własnej klasy, aby to zrobić, ponieważ to, co chcesz, wydaje się bardzo specyficzne, z twoim opisem problemu, nie sądzę, żeby użyć jakichś układów lub paneli, zrobię to, co dokładnie chcieć.

znalazłem coś, co można używać: Dragging to resize a JavaFX Region

ta pozwala na zmianę rozmiaru regionu, wszystko co musisz zrobić, po to do was VBox w tym regionie, ale zawiadomienie w tym artykule, że:

Obecnie stosowana jest tylko zmiana wysokości.

Ten kod nie zadziała w JavaFX8, musisz sprawdzić komentarz zobaczyć jak to Worls w JavaFX8

nadzieję, że to pomaga.