Was ist der beste Weg, um Räume zwischen Objekten zu platzieren? Kann ein Swing JSeparator-Objekt ein unsichtbares Trennzeichen sein?

8

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.)

    
Warren P 04.06.2010, 15:20
quelle

4 Antworten

18
___ qstnhdr ___ Was ist der beste Weg, um Räume zwischen Objekten zu platzieren? Kann ein Swing JSeparator-Objekt ein unsichtbares Trennzeichen sein? ___ answer2975507 ___

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.

    
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123swing ___ Swing ist das wichtigste Toolkit für Benutzeroberflächen in Java und wird mit dem Standard-Java-SDK ausgeliefert. Es ist im Paket javax.swing enthalten. ___ answer29156924 ___

Wenn ich addSeparator mit einem Wert von 1 für die Höhe verwende, wird es für mich unsichtbar, zum Beispiel:

%Vor%     
___ tag123netbeans ___ NetBeans bezeichnet sowohl ein Plattform-Framework für Java-Desktop-Anwendungen als auch eine integrierte Entwicklungsumgebung (IDE) für die Entwicklung mit Java und anderen Sprachen. ___ qstntxt ___

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.)

    
___ tag123settings ___ Aufnahme kleinerer Elemente in größere Elemente; enthält HTML-Elemente, Bilder, Grafiken ___ tag123jseparator ___ Die Java Swing-Komponente, mit der Komponenten visuell durch eine Linie (horizontal oder vertikal) getrennt werden - am häufigsten als Trennlinie zwischen Menüelementen. ___ answer2975547 ___

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.

    
___ answer2975576 ​​___

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.

    
___
Adamski 04.06.2010, 15:32
quelle
4

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.

    
jjnguy 04.06.2010 15:23
quelle
2

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.

    
Anton 04.06.2010 15:28
quelle
1

Wenn ich addSeparator mit einem Wert von 1 für die Höhe verwende, wird es für mich unsichtbar, zum Beispiel:

%Vor%     
SubJunk 19.03.2015 23:37
quelle