Tag | Class | Notes |
|---|---|---|
frame | com.ooi.swing.Frame | A subclass of JFrame. This tag has special handling for the menubar and content pane. |
pane | com.ooi.swing.Pane | A panel with support for java.awt.Paint, uses border layout |
hpane | com.ooi.swing.Pane | Uses horizontal linear layout |
vpane | com.ooi.swing.Pane | Uses vertical linear layout |
glass | com.ooi.swing.Glass | A simple clear component |
watermark | com.ooi.swing.WatermarkPane | A pane that supports a watermark background |
scroll | com.ooi.swing.ScrollPane |
|
tabs | javax.swing.JTabbedPane |
|
split | javax.swing.JSplitPane |
|
Notes: Container class layout managers can be set with the "layout" magic property like so:
pane layout="border" // this is the default, so it need not be specified
pane layout="spring"
pane layout="horizontal"
pane layout="horizontal(5)" // horizontal layout with 5 pixels between components
pane layout="vertical"
pane layout="grid(5,3)"
pane layout="table(fill,fill,fill,fill|pref,pref,pref,pref,fill)"
|
The "loc" magic property allow constraints to be used when adding components. For example:
pane {
button "Hello" loc="north"
textarea
label "Foo" loc="south"
}
|
The vertical and horizontal layouts support a "fill" constraint that indicates the component should fill available space.
Tag | Class | Notes |
|---|---|---|
label | com.ooi.swing.Label |
|
vlabel | com.ooi.swing.VerticalLabel |
|
multilabel | com.ooi.swing.MultiLabel | A multi-line label |
titlepane | com.ooi.swing.TitledPane |
|
text | com.ooi.swing.TextField |
|
textarea | javax.swing.JTextArea |
|
textpane | javax.swing.JTextPane |
|
password | javax.swing.JPasswordField |
|
Note: Labels can also be created simply by using a string literal. Example:
hpane {
"This is a label"
}
|
Tag | Class | Notes |
|---|---|---|
menus | javax.swing.JMenuBar |
|
toolbar | javax.swing.JToolBar |
|
menu | javax.swing.JMenu |
|
menuitem | javax.swing.JMenuItem |
|
checkmenuitem | javax.swing.JCheckBoxMenuItem |
|
radiomenuitem | javax.swing.JRadioButtonMenuItem |
|
separator | com.ooi.swing.Separator |
|
Menus can also be created by simply using strings like so:
menus {
"Colors" {
"Red"
"Green"
"Blue"
}
"Textures" {
"Fluffy"
"Rough"
}
}
|
Radio button menus are created like so:
menus {
"Colors" {
radios {
"Red"
"Green"
"Blue"
}
}
}
|
Tag | Class | Notes |
|---|---|---|
button | com.ooi.swing.Button |
|
toggle | javax.swing.JToggleButton |
|
radio | javax.swing.JRadioButton |
|
check | javax.swing.JCheckBox |
|
Radio buttons can be specified like so:
hpane {
radios group="gender" {
"Male"
"Female"
}
}
|
You can get a handle on the ButtonGroup using the form object:
ButtonGroup = form.getGroup("gender");
|
Tag | Class | Notes |
|---|---|---|
tree | javax.swing.JTree |
|
table | javax.swing.JTable |
|
Tag | Class | Notes |
|---|---|---|
spacer | com.ooi.swing.Glass | Takes a single int argument (e.g. spacer 5) to create a space between components |
combo | javax.swing.JComboBox |
|
spinner | javax.swing.JSpinner |
|
slider | javax.swing.JSlider |
|
progress | javax.swing.JProgressBar |
|
list | javax.swing.JList |
|
form | com.ooi.swing.Form | A root container for fetching child components by name |
formpane | com.ooi.swing.FormPane | Supports simple form layout |
ref | N/A | A tag that loads the component named in the string that follows (see below) |
The ref tag loads an sdl definition for a component from the /resources/components/ project directory. Example:
pane {
ref "menubar" loc="north"
pane {
...
}
}
|
The code above loads /resources/components/menubar.sdl and adds it to a pane with the constraint BorderLayout.NORTH.