Czy jest możliwe dodanie pustej przestrzeni między wierszami węzłów w JTree? Używam niestandardowych obrazów dla ikon węzła i domyślam się, że obrazy są większe niż standardowe ikony węzłów, więc ikony węzłów znajdują się bardzo blisko siebie. Byłoby ładniej, gdyby było trochę rozstania.Dodawanie pionowej padding/spacji między wierszami w JTree?
Odpowiedz
Aby dodać odstępy rzeczywisty między węzłami drzewa trzeba będzie zmodyfikować interfejs użytkownika i powrócić do właściwego następcy AbstractLayoutCache (domyślnie JTree wykorzystuje dwie klasy, w zależności od wartości wysokości rzędu: FixedHeightLayoutCache lub VariableHeightLayoutCache).
Najprostszym sposobem, aby dodać odstępy między węzłami jest modyfikacja renderujący, więc będzie mieć jakąś dodatkową granicę, na przykład:
public static void main (String[] args)
{
JFrame frame = new JFrame();
JTree tree = new JTree();
tree.setCellRenderer (new DefaultTreeCellRenderer()
{
private Border border = BorderFactory.createEmptyBorder (4, 4, 4, 4);
public Component getTreeCellRendererComponent (JTree tree, Object value, boolean sel,
boolean expanded, boolean leaf, int row,
boolean hasFocus)
{
JLabel label = (JLabel) super
.getTreeCellRendererComponent (tree, value, sel, expanded, leaf, row,
hasFocus);
label.setBorder (border);
return label;
}
});
frame.add (tree);
frame.pack();
frame.setLocationRelativeTo (null);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setVisible (true);
}
To wciąż nieco trudniejsze niż po prostu ustawienie wysokości wiersza statyczne (jak Subskrybent zaoferował ci w komentarzu), ALE jest to lepsze ze względu na różne możliwe rozmiary i style czcionek w różnych systemach operacyjnych. Więc nie będziesz mieć problemów z wielkością w dowolnym miejscu.
Nawiasem mówiąc, możesz również zmienić reprezentację zaznaczenia węzła tak, jak lubisz, dzięki czemu możesz wizualnie nawet sfałszować odstępy.
Tak, właśnie to zrobiłem (wraz z ustawieniem wysokości wiersza JTree na 0 tak, że odrzuca obliczenie wysokości do renderera komórek). Działa całkiem dobrze. –
- 1. Dodawanie pionowej przestrzeni między wierszami w vim
- 2. Dodawanie przestrzeni pionowej w dokumentach Sfinksa
- 3. Odstęp między wierszami
- 4. SQL: znajdowanie różnic między wierszami
- 5. Pionowa przestrzeń między wierszami startowymi
- 6. UILabel negatywne odstępy między wierszami
- 7. Zmniejszanie odstępów między wierszami w TextBlock/FlowDocument
- 8. Jak zmienić odstępy między wierszami w TextBlock?
- 9. Manipulowanie odstępami między wierszami w LaTeX
- 10. Wykładanie tekstowe w systemie Android między wierszami
- 11. Zmienić odstęp między wierszami w tytule ggplot?
- 12. separacja między wierszami w układzie tabeli
- 13. Ustawianie minimalnego odstępu między wierszami w kolekcjiView
- 14. Rozmieszczenie w siatce i interlinię między wierszami
- 15. Dodawanie poziomą linię między wierszami w tabeli lateksowego przy użyciu R xtable
- 16. Jaki stan jest przechowywany między wierszami JavaScript?
- 17. Wstrzykiwanie próbnych uskokowych zależności między wierszami
- 18. Przekładka w linii pionowej między dwoma elementami div
- 19. Suma obliczeniowa sql między 2 wierszami
- 20. SQL Datediff - znajdź datediff między wierszami
- 21. R - Obszar koloru lub cienia między wierszami
- 22. Serwer SQL: porównaj daty między wierszami
- 23. Atrybut odstępów między wierszami iOS na NSMutableAttributedString
- 24. Jak ustawić odstęp między wierszami Graphics.DrawString
- 25. Oblicz różnicę czasu między dwoma wierszami
- 26. Jak zwiększyć odstępy między wierszami w UILabel w Swift
- 27. Jtable jako węzeł Jtree
- 28. Manipulacja na pionowej przestrzeni w subplotach matplotlib
- 29. Jak zmienić odstępy między wierszami w Visual Studio 2012?
- 30. Jak obliczyć różnice między kolejnymi wierszami w ramce danych pandy?
Czy użyłeś metody setRowHeight() JTree? Możesz ustawić wartość 0, aby każdy wiersz obliczał jego wysokość indywidualnie. – Subs