Frage

Der Versuch, eine GUI-Anwendung in Java / Swing zu bauen. Ich bin in erster Linie auf „Bild“ GUIs auf der Windows-Seite mit Tools wie VB (oder um genauer zu sein, Gupta SQLWindows ... frage mich, wie viele Leute wissen, was das ist ;-)) verwendet.

Ich kann kein Äquivalent einer Gruppe Box in Swing finden ...

Mit einem Gruppenfeld, haben Sie einen viereckigen Kasten (in der Regel mit einem Titel) um ein paar verwandten Widgets. Ein Beispiel ist ein Gruppenfeld um ein paar Radio-Buttons (mit dem Titel zu erklären, was die Radiobuttons sind etwa, zum Beispiel Gruppenfeld des Titel „Sex“ mit „männlich“ und „weiblich“ Radio-Buttons).

ich ein bisschen herum gesucht haben ... der einzige Weg, ich fand, war ein Unterbereich hinzuzufügen, setzen Sie die Grenze auf der Unterbereich und dann alle Widgets in der „Gruppe“ fügen dem Unterbereich . Gibt es eine elegantere Möglichkeit, das zu tun?

War es hilfreich?

Lösung

Erstellen Sie eine JPanel, und fügen Sie Ihre Radiobuttons zu. Vergessen Sie nicht, das Layout der JPanel auf etwas zu setzen angemessen.

Dann rufen panel.setBorder(BorderFactory.createTitledBorder(name));

Andere Tipps

Andere haben bereits commetned über JPanel und TitledBorder verwenden, das ist in Ordnung.

Wenn jedoch mit Swing-LayoutManagers spielen, können Sie finden es ärgerlich, dass Komponenten in unterschiedlichen JPanels nicht korrekt ausrichten (jede Platte einen eigener Layoutmanager hat).

Aus diesem Grunde ist es eine gute Praxis (Check „JGoodies“ im Internet für weitere Informationen) in Swing GUIs NICHT TitledBorders zu verwenden, sondern getrennte Gruppen von Komponenten in einem JPanel durch eine JLabel durch eine horizontale JSeparator gefolgt.

Ref. " Erste Hilfe für Swing "

Eine Gruppe Box ist nur eine Reihe von ‚logisch gruppiert Widgets‘. Das in der Schaukel Welt ist ein JPanel.

Fügen Sie Ihre Widgets zu einem JPanel.

Setzen Sie die Grenze Typ ‚betitelt Border‘ und geben Sie den Titel, gleich dem Namen der ‚Rahmen‘ VB6.

Voila. Sie haben Ihr Gruppenfeld.

Hier ist ein Zitat aus dem JRadioButton javadocs da Sie Radiobuttons gebracht.

  

Eine Implementierung eines Radiobutton - ein Element, das ausgewählt oder abgewählt werden können, und die für den Benutzer seinen Zustand anzeigt. Wurde mit einem Button Objekt, um eine Gruppe von Schaltflächen, in denen nur eine Taste zu einer Zeit erstellen kann ausgewählt werden. (Erstellen Sie ein Button Objekt und verwenden Sie seine Methode add die JRadioButton Objekte in die Gruppe aufgenommen werden.)

     

Hinweis: Das ButtonBroup Objekt ist eine logische Gruppierung - keine physische Gruppierung. Um eine Knopfleiste zu erstellen, sollten Sie noch ein JPanel oder ähnliches Behälter-Objekt zu erstellen und eine Grenze, um es hinzuzufügen, es zu setzen aus dem umliegenden Komponenten ab.

Nicht AFAIK, zumindest nicht mit Standard-Swing-Widgets.

In VB haben Sie eine Gruppe Widget, die im Wesentlichen eine Platte + Grenze ist.

In Swing haben Sie einen JPanel, das der Container-Widget ist, und Sie erstellen und ein Rand-Objekt festgelegt auf es nur, wenn man einen braucht. Man kann das in einer Art und Weise argumentieren, dass mehr elegant ist, da Sie nicht für etwas zahlen Sie nicht verwenden (zum Beispiel Grenze)

Als David Koelle über das Einrichten der Grenze durch Java-Code erwähnt, können Sie auch ähnliches Ergebnis im Designer-Modus erreichen.

Ich bin ansprechend auf die Bemerkung des Uri basiert die explaind, was die OP von Group Box gemeint:

  

Uri. Ich glaube, er bedeutet die Kontrollgruppe, die Sie in vielen Dialogfeldern zu sehen, wo Sie ein Quadrat um eine Reihe von Widgets wie Radio-Buttons, zum Beispiel

Soweit ich weiß, kann jeder JComponent eine Grenze für sich selbst festgelegt, so dass Sie nicht eine zweite Platte benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top