Ich versuche, mit Swing-Widgets zwei Schaltflächen innerhalb eines Panels zu platzieren. In der NetBeans-IDE ist meine Eigenschaft JSeparator
border
im Eigenschaftenfenster auf (No border)
gesetzt.
Trotzdem erscheint eine Zeile. Dies ist nicht das, was ich von einem Trennobjekt erwarten würde. Mache ich etwas falsch? Ich komme aus einem Hintergrund in Delphi und C # WinForms und erwarte einige Besonderheiten in Swing. Aber wie genau machen Sie eine transparente Lücke einer bestimmten Größe zwischen zwei Schaltflächen in einem Panel? Muss ich mit Layouts spielen und die JSeparator
vermeiden?
Update: Es sollte trivial sein, dies mit einem Layout und ohne ein Trennobjekt zu tun. Also, wie machst du das? Ich untersuche den NetBeans-Layout-Customizer und den Eigenschaften-Inspektor und finde keine Möglichkeit, dies zu tun. (Antwort: Layouts mit Einsätzen anstelle von Trennzeichen.)
Box
soll ein sichtbares Trennzeichen zwischen den Komponenten sein.
Von javadoc für JPanel
:
JSeparator stellt eine allgemeine Komponente für die Implementierung von Trennlinien zur Verfügung, die am häufigsten als Trennlinie zwischen Menüelementen verwendet wird, die sie in logische Gruppierungen aufteilt.
Wenn Sie eine Komponente zwischen zwei Komponenten einfügen möchten, die unsichtbar ist, verwenden Sie stattdessen %code% . Stellen Sie dann die Größe des Panels mit %code% und %code% ein.
Wenn ich addSeparator mit einem Wert von 1 für die Höhe verwende, wird es für mich unsichtbar, zum Beispiel:
%Vor%Ich versuche, mit Swing-Widgets zwei Schaltflächen innerhalb eines Panels zu platzieren. In der NetBeans-IDE ist meine Eigenschaft %code% %code% im Eigenschaftenfenster auf %code% gesetzt.
Trotzdem erscheint eine Zeile. Dies ist nicht das, was ich von einem Trennobjekt erwarten würde. Mache ich etwas falsch? Ich komme aus einem Hintergrund in Delphi und C # WinForms und erwarte einige Besonderheiten in Swing. Aber wie genau machen Sie eine transparente Lücke einer bestimmten Größe zwischen zwei Schaltflächen in einem Panel? Muss ich mit Layouts spielen und die %code% vermeiden?
Update: Es sollte trivial sein, dies mit einem Layout und ohne ein Trennobjekt zu tun. Also, wie machst du das? Ich untersuche den NetBeans-Layout-Customizer und den Eigenschaften-Inspektor und finde keine Möglichkeit, dies zu tun. (Antwort: Layouts mit Einsätzen anstelle von Trennzeichen.)
Sie brauchen JSeparator nicht. In den meisten Layouts können Sie Abstände zwischen den Komponenten festlegen. Und Box-Klasse kann besonders nützlich sein.
Sie sollten sich die statischen Hilfsmethoden auf der %code% ansehen. Klasse. Sie können verwendet werden, um feste Streben herzustellen, die als unsichtbare Separatoren wirken; z.B.
%Vor%Dies erzeugt einen kompakteren Code als das Erstellen / Konfigurieren von %code% selbst mit entsprechenden minimalen, maximalen und bevorzugten Dimensionen.
JSeparator
soll ein sichtbares Trennzeichen zwischen den Komponenten sein.
Von javadoc für JSeparator
:
JSeparator stellt eine allgemeine Komponente für die Implementierung von Trennlinien zur Verfügung, die am häufigsten als Trennlinie zwischen Menüelementen verwendet wird, die sie in logische Gruppierungen aufteilt.
Wenn Sie eine Komponente zwischen zwei Komponenten einfügen möchten, die unsichtbar ist, verwenden Sie stattdessen JPanel
. Stellen Sie dann die Größe des Panels mit setPreferedSize()
und setMin/MaxSize()
ein.
Tags und Links java swing netbeans insets jseparator