/ / Auswahl nach: Klasse oder: ID in Wippe - Benutzeroberfläche, Clojure, Wippe

Auswahl durch: Klasse oder: ID in Wippe - Benutzeroberfläche, Clojure, Wippe

Hier ist aus dem Wipp-Tutorial:

(def rbs (for [i [:source :doc]]
(radio :id i :class :type :text (name i))))

(display (border-panel
:north (horizontal-panel :items rbs)
:center split
:vgap 5
:hgap 5
:border 5))

(select f [:JRadioButton])
(select f [:.type])
(select f [:#source])

Bei der Auswahl nach: class wurde ein Punkt in: type hinzugefügt, sodass wir: .type erhielten, und bei der Auswahl nach id wurde ein # hinzugefügt, sodass wir: #source erhielten, warum?

Antworten:

0 für die Antwort № 1

Dies ist nur ein Teil der Syntax für Selektoren, mit denen Sie angeben können, was Sie auswählen möchten.

Das docstring für die select Funktion dokumentiert die vollständige Selektorsyntax. Ich werde nicht den gesamten Dokumentstring kopieren, aber hier sind einige Highlights:

[:#id]            ID
[:tag]            "Simple" (not fully-qualified) class name
[:<class-name>]   Fully-qualified class name; also matches subclasses
[:<class-name!>]  Exact class match
[:.<class>]       "Class" match, as set using :class option
[:*]              Everything

Beispiele von jedem:

;; Widget with ID box1.
(select root [:#box1])
;; Class Label, e.g. com.myns.Label or org.foo.Label.
(select root [:Label])
;; javax.swing.text.JTextComponent and descendants.
(select root [:<javax.swing.text.JTextComponent>])
;; Only javax.swing.text.JTextComponent
(select root [:<javax.swing.text.JTextComponent!>])
;; Class class1, e.g. (flow-panel :class :class1)
(select root [:.class1])
;; Everything
(select root [:*])

Es ist auch zu beachten, dass diese kombiniert werden können, z.

;; Everything under widgets with class javax.swing.text.JTextComponent
;; (or subclasses) and class input.
(select root [:<javax.swing.text.JTextComponent>.input :*])