Ist es möglich, ein Leerzeichen zwischen Knotenzeilen in einem JTree hinzuzufügen? Ich benutze benutzerdefinierte Bilder für die Knoten-Symbole und ich denke, die Bilder sind größer als die Standard-Knoten-Symbole, so dass die Knoten-Symbole sehr nahe beieinander sitzen. Es würde schöner aussehen, wenn es ein bisschen Trennung gäbe.Hinzufügen von vertikalem Abstand zwischen Zeilen in einem JTree?
Antwort
einen tatsächlichen Abstand zwischen dem Baumknoten hinzuzufügen kann, die Benutzeroberfläche zu ändern habt und einen richtigen AbstractLayoutCache Nachfolger (standardmäßig JTree verwendet zwei Klassen, abhängig von der Zeilenhöhe Wert: FixedHeightLayoutCache oder VariableHeightLayoutCache) zurückzukehren.
Der einfachste Weg, um etwas Abstand zwischen den Knoten hinzuzufügen, ist Renderer zu ändern, so dass es einige zusätzliche Grenze hat, zum Beispiel:
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);
}
Dies als noch ein bisschen härter ist nur die statische Zeilenhöhe einstellen (als Subs im Kommentar angeboten), aber es ist besser wegen der verschiedenen möglichen Schriftgrößen und Stile auf verschiedenen Betriebssystemen. Sie werden also nirgends Größenprobleme haben.
Übrigens können Sie die Darstellung der Knotenauswahl auch so ändern, wie Sie möchten. Auf diese Weise können Sie sogar den Abstand visuell vortäuschen.
Ja, das ist es, was ich getan habe (zusammen mit der Einstellung der Zeilenhöhe von JTree auf 0, so dass die Höhenberechnung für den CellRenderer verschoben wird). Funktioniert ziemlich gut. –
- 1. Hinzufügen von vertikalem Raum in Sphinx-Dokumenten
- 2. Hinzufügen von Abstand zu Zeilen in NSAttributedString
- 3. Hinzufügen von vertikalen Abstand zwischen Zeilen in vim
- 4. Abstand zwischen Zeilen
- 5. Vertikaler Abstand zwischen Bootstrap-Zeilen
- 6. Beseitigung von Blättern, zwischen Knoten in einem JTree sind
- 7. Hinzufügen von vertikalen Abstand zwischen zwei Ansichten programmgesteuert in swift
- 8. Hinzufügen von Abstand zwischen Schaltflächen in LinearLayout, das in einem HorizontalScrollView ist
- 9. Wie den Abstand zwischen Zeilen in WKInterfaceTable reduzieren
- 10. Wie wird der Abstand zwischen Zeilen in CSS erhöht?
- 11. Wie der Abstand zwischen Zeilen in Webbrowser Steuerelement erhöhen
- 12. Beziehung zwischen horizontalem, vertikalem und diagonalem Sichtfeld
- 13. Berechnen Ähnlichkeit/Abstand zwischen Zeilen mit Pandas schneller
- 14. Einfügen von vertikalem Raum in Pandoc Markdown
- 15. vertikale Abstand zwischen display: inline divs in einem Fluid Grid
- 16. ggplot2 vergrößert den Abstand zwischen den Legendenschlüsseln
- 17. "Abstand" zwischen Farben in PHP
- 18. JTree-Verbindungslinien in Substance
- 19. UICollectionView Layout Abstand zwischen Zellen
- 20. berechnen Abstand zwischen einem Ort und einer Liste von Orten
- 21. Abstand zwischen Schaltflächen in einem Fenster in WPF
- 22. Jaccard Abstand zwischen Tweets
- 23. So reduzieren Sie den Abstand zwischen den Zeilen mit Bootstrap
- 24. Abstand zwischen Boxplots in ggplot2
- 25. Add Abstand zwischen zwei Buchstaben in einem String in R
- 26. Knoten in einem JTree ausblenden/filtern?
- 27. Farbreihen in JTree
- 28. Auswählen kürzester Abstand zwischen Paaren von Elementen
- 29. Abstand zwischen den Spalten
- 30. Beschleunigen der L1-Abstand zwischen allen Paaren in einem Bodensatz
Haben Sie die Methode setRowHeight() von JTree verwendet? Sie können es auf 0 setzen, damit jede Zeile ihre Höhe individuell berechnet. – Subs