scala.swing

package scala.swing

Type members

Classlikes

abstract class AbstractButton extends Component with Trigger with Publisher

Base class of all button-like widgets, such as push buttons, check boxes, and radio buttons.

Base class of all button-like widgets, such as push buttons, check boxes, and radio buttons.

See also

javax.swing.AbstractButton

object Action
Companion
class
abstract class Action(title0: String)

An abstract action to be performed in reaction to user input.

An abstract action to be performed in reaction to user input.

Not every action component will honor every property of its action. An action itself can generally be configured so that certain properties should be ignored and instead taken from the component directly. In the end, it is up to a component which property it uses in which way.

See also

javax.swing.Action

Companion
object
object Adjustable
Companion
class
trait Adjustable extends Oriented
Companion
object
object Alignment extends Enumeration

Horizontal and vertical alignments. We sacrifice a bit of type-safety for simplicity here.

Horizontal and vertical alignments. We sacrifice a bit of type-safety for simplicity here.

See also

javax.swing.SwingConstants

abstract class Applet extends JApplet

Clients should implement the ui field. See the SimpleApplet demo for an example.

Clients should implement the ui field. See the SimpleApplet demo for an example.

Note: Applet extends javax.swing.JApplet to satisfy Java's applet loading mechanism. The usual component wrapping scheme doesn't work here.

See also

javax.swing.JApplet

object BorderPanel
Companion
class
class BorderPanel extends Panel with LayoutContainer

A container that arranges its children around a central component that takes most of the space. The other children are placed on one of four borders: north, east, south, west.

A container that arranges its children around a central component that takes most of the space. The other children are placed on one of four borders: north, east, south, west.

See also

javax.swing.BorderLayout

Companion
object
class BoxPanel(orientation: Value) extends Panel with Wrapper

A panel that lays out its contents one after the other, either horizontally or vertically.

A panel that lays out its contents one after the other, either horizontally or vertically.

See also

javax.swing.BoxLayout

abstract class BufferWrapper[A] extends Buffer[A]

Default partial implementation for buffer adapters.

Default partial implementation for buffer adapters.

object Button
Companion
class
class Button(text0: String) extends AbstractButton with Publisher

A button that can be clicked, usually to perform some action.

A button that can be clicked, usually to perform some action.

See also

javax.swing.JButton

Companion
object
class ButtonGroup(initialButtons: AbstractButton*)

A button mutex. At most one of its associated buttons is selected at a time.

A button mutex. At most one of its associated buttons is selected at a time.

See also

javax.swing.ButtonGroup

class CheckBox(text: String) extends ToggleButton

Two state button that can either be checked or unchecked.

Two state button that can either be checked or unchecked.

See also

javax.swing.JCheckBox

class CheckMenuItem(title0: String) extends MenuItem

A menu item with a check box.

A menu item with a check box.

See also

javax.swing.JCheckBoxMenuItem

object ColorChooser

Wrapper for JColorChooser. Publishes ColorChanged events, when the color selection changes.

Wrapper for JColorChooser. Publishes ColorChanged events, when the color selection changes.

Authors

Ingo Maier

See also

javax.swing.JColorChooser

Companion
class
class ColorChooser(color0: Color) extends Component
Companion
object
object ComboBox
Companion
class
class ComboBox[A](items: Seq[A]) extends Component with Publisher

Let's the user make a selection from a list of predefined items. Visually, this is implemented as a button-like component with a pull-down menu.

Let's the user make a selection from a list of predefined items. Visually, this is implemented as a button-like component with a pull-down menu.

See also

javax.swing.JComboBox

Companion
object
object Component

Utility methods, mostly for wrapping components.

Utility methods, mostly for wrapping components.

Companion
class
abstract class Component extends UIElement with PeerContainer

Base class for all UI elements that can be displayed in a window. Components are publishers that fire the following event classes: ComponentEvent, FocusEvent, FontChanged, ForegroundChanged, BackgroundChanged.

Base class for all UI elements that can be displayed in a window. Components are publishers that fire the following event classes: ComponentEvent, FocusEvent, FontChanged, ForegroundChanged, BackgroundChanged.

See also

javax.swing.JComponent

http://java.sun.com/products/jfc/tsc/articles/painting/ for the component painting mechanism

Note

[Java Swing] Unlike in Java Swing, not all components are also containers.

Companion
object
object Container
Companion
class
trait Container extends UIElement

The base traits for UI elements that can contain Components.

The base traits for UI elements that can contain Components.

Note

[Java Swing] This is not the wrapper for java.awt.Container but a trait that extracts a common interface for components, menus, and windows.

Companion
object
class DesktopPane extends Component with Wrapper

A pane that can host nested internal windows (represented by InternalFrame).

A pane that can host nested internal windows (represented by InternalFrame).

Companion
object
object DesktopPane
Companion
class
object Dialog

Simple predefined dialogs.

Simple predefined dialogs.

See also

javax.swing.JOptionPane

Companion
class
class Dialog(owner: Window, gc: GraphicsConfiguration) extends RichWindow

A dialog window.

A dialog window.

See also

javax.swing.JDialog

Companion
object
class EditorPane(contentType0: String, text0: String) extends TextComponent

A text component that allows multi-line text input and display.

A text component that allows multi-line text input and display.

See also

javax.swing.JEditorPane

object FileChooser
Companion
class
class FileChooser(dir: File) extends Component

Used to open file dialogs.

Used to open file dialogs.

See also
Companion
object
object FlowPanel
Companion
class
class FlowPanel(alignment: Value)(contents0: Component*) extends Panel with Wrapper

A panel that arranges its contents horizontally, one after the other. If they don't fit, this panel will try to insert line breaks.

A panel that arranges its contents horizontally, one after the other. If they don't fit, this panel will try to insert line breaks.

See also

java.awt.FlowLayout

Companion
object
object Font
Companion
class
class FormattedTextField(format: Format) extends TextComponent

A text field with formatted input.

A text field with formatted input.

See also

javax.swing.JFormattedTextField

Companion
object
class Frame(gc: GraphicsConfiguration) extends RichWindow

A window with decoration such as a title, border, and action buttons.

A window with decoration such as a title, border, and action buttons.

An AWT window cannot be wrapped dynamically with this class, i.e., you cannot write something like new Window { def peer = myAWTWindow }

See also

javax.swing.JFrame

object GridBagPanel
Companion
class
class GridBagPanel extends Panel with LayoutContainer

A panel that arranges its children in a grid. Layout details can be given for each cell of the grid.

A panel that arranges its children in a grid. Layout details can be given for each cell of the grid.

See also

java.awt.GridBagLayout

Companion
object
object GridPanel
Companion
class
class GridPanel(rows0: Int, cols0: Int) extends Panel with Wrapper

A panel that lays out its contents in a uniform grid.

A panel that lays out its contents in a uniform grid.

See also

java.awt.GridLayout

Companion
object
class InternalFrame extends Component with RootPanel with Publisher

A window that can be nested inside another window (typically within a DesktopPane).

A window that can be nested inside another window (typically within a DesktopPane).

class Label(text0: String, icon0: Icon, align: Value) extends Component

A label component that display either a text, an icon, or both.

A label component that display either a text, an icon, or both.

See also

javax.swing.JLabel

trait LayoutContainer extends Wrapper

A container that associates layout constraints of member type Constraints with its children.

A container that associates layout constraints of member type Constraints with its children.

See GridBagPanel for an example container with custom constraints.

Note

[Java Swing] In scala.swing, panels and layout managers are combined into subclasses of this base class. This approach allows for typed component constraints.

object ListView
Companion
class
class ListView[A] extends Component

A component that displays a number of elements in a list. A list view does not support inline editing of items. If you need it, use a table view instead.

A component that displays a number of elements in a list. A list view does not support inline editing of items. If you need it, use a table view instead.

Named ListView to avoid a clash with the frequently used scala.List

See also

javax.swing.JList

Companion
object
class MainFrame(gc: GraphicsConfiguration) extends Frame

A frame that can be used for main application windows. It shuts down the framework and quits the application when closed.

A frame that can be used for main application windows. It shuts down the framework and quits the application when closed.

abstract class MapWrapper[K, V] extends Map[K, V]

Default partial implementation for mutable map adapters.

Default partial implementation for mutable map adapters.

class Menu(title0: String) extends MenuItem with Wrapper

A menu. Contains menu items. Being a menu item itself, menus can be nested.

A menu. Contains menu items. Being a menu item itself, menus can be nested.

See also

javax.swing.JMenu

object MenuBar
Companion
class
class MenuBar extends Component with Wrapper

A menu bar. Each window can contain at most one. Contains a number of menus.

A menu bar. Each window can contain at most one. Contains a number of menus.

See also

javax.swing.JMenuBar

Companion
object
class MenuItem(title0: String) extends AbstractButton

A menu item that can be used in a menu.

A menu item that can be used in a menu.

See also

javax.swing.JMenuItem

trait Orientable extends Oriented

An Oriented whose orientation can be changed.

An Oriented whose orientation can be changed.

object Orientation extends Enumeration
trait Oriented

Something that can have an orientation.

Something that can have an orientation.

abstract class Panel extends Component with Wrapper

A component that can contain other components.

A component that can contain other components.

See also

javax.swing.JPanel

class PasswordField(text0: String, columns0: Int) extends TextField

A password field, that displays a replacement character for each character in the password.

A password field, that displays a replacement character for each character in the password.

See also

javax.swing.JPasswordField

class PopupMenu extends Component with Wrapper with Publisher

A popup menu.

A popup menu.

Example usage:

val popupMenu = new PopupMenu {
 contents += new Menu("menu 1") {
   contents += new RadioMenuItem("radio 1.1")
   contents += new RadioMenuItem("radio 1.2")
 }
 contents += new Menu("menu 2") {
   contents += new RadioMenuItem("radio 2.1")
   contents += new RadioMenuItem("radio 2.2")
 }
}
val button = new Button("Show Popup Menu")
reactions += {
 case e: ButtonClicked => popupMenu.show(button, 0, button.bounds.height)
}
listenTo(button)
Authors

John Sullivan

Ingo Maier

See also

javax.swing.JPopupMenu

class ProgressBar extends Component with Orientable

A bar indicating progress of some action. Can be in indeterminate mode, in which it indicates that the action is in progress (usually by some animation) but does not indicate the amount of work done or to be done.

A bar indicating progress of some action. Can be in indeterminate mode, in which it indicates that the action is in progress (usually by some animation) but does not indicate the amount of work done or to be done.

See also

javax.swing.JProgressBar

trait Publisher extends Reactor

Notifies registered reactions when an event is published. Publishers are also reactors and listen to themselves per default as a convenience.

Notifies registered reactions when an event is published. Publishers are also reactors and listen to themselves per default as a convenience.

In order to reduce memory leaks, reactions are weakly referenced by default, unless they implement Reactions.StronglyReferenced. That way, the lifetime of reactions are more easily bound to the registering object, which are reactors in common client code and hold strong references to their reactions. As a result, reactors can be garbage collected even though they still have reactions registered at some publisher, but not vice versa since reactors (strongly) reference publishers they are interested in.

class RadioButton(text0: String) extends ToggleButton

A two state button that is usually used in a ButtonGroup together with other RadioButtons, in order to indicate that at most one of them can be selected.

A two state button that is usually used in a ButtonGroup together with other RadioButtons, in order to indicate that at most one of them can be selected.

See also

javax.swing.JRadioButton

class RadioMenuItem(title0: String) extends MenuItem

A menu item with a radio button.

A menu item with a radio button.

See also

javax.swing.JRadioButtonMenuItem

object Reactions
Companion
class
abstract class Reactions extends Reaction

Used by reactors to let clients register custom event reactions.

Used by reactors to let clients register custom event reactions.

Companion
object
trait Reactor

The counterpart to publishers. Listens to events from registered publishers.

The counterpart to publishers. Listens to events from registered publishers.

object RichWindow
Companion
class
sealed trait RichWindow extends Window

A window that adds some functionality to the plain Window class and serves as the common base class for frames and dialogs.

A window that adds some functionality to the plain Window class and serves as the common base class for frames and dialogs.

Implementation note: this class is sealed since we need to know that a rich window is either a dialog or a frame at some point.

Companion
object
trait RootPanel extends Container

The root of a component hierarchy. Contains at most one component.

The root of a component hierarchy. Contains at most one component.

See also

javax.swing.RootPaneContainer

object ScrollBar
Companion
class
class ScrollBar extends Component with Orientable with Wrapper
Companion
object
object ScrollPane
Companion
class
class ScrollPane extends Component with Container

Can have at most a single child component, which will be put inside a canvas (the viewport) that can be scrolled.

Can have at most a single child component, which will be put inside a canvas (the viewport) that can be scrolled.

See also

javax.swing.JScrollPane

Companion
object
object Scrollable
Companion
class
trait Scrollable extends Component

A component that is specially suitable for being placed inside a ScrollPane.

A component that is specially suitable for being placed inside a ScrollPane.

See also

javax.swing.Scrollable

Companion
object
class Separator(o: Value) extends Component with Oriented

A bar that can be used a separator, most commonly in menus.

A bar that can be used a separator, most commonly in menus.

See also

javax.swing.JSeparator

Companion
class

A container for which a sequential order of children makes sense, such as flow panels, or menus. Its contents are mutable.

A container for which a sequential order of children makes sense, such as flow panels, or menus. Its contents are mutable.

Companion
object
abstract class SetWrapper[A] extends Set[A]

Default partial implementation for mutable set adapters.

Default partial implementation for mutable set adapters.

Extend this class for most simple UI applications. Clients need to implement the top method. Framework initialization is done by this class.

Extend this class for most simple UI applications. Clients need to implement the top method. Framework initialization is done by this class.

In order to conform to Swing's threading policy, never implement top or any additional member that created Swing components as a value unless component creation happens on the EDT (see Swing.onEDT and Swing.onEDTWait). Lazy values are okay for the same reason if they are initialized on the EDT always.

class Slider extends Component with Orientable with Publisher

Lets users select a value from a given range. Visually, this is represented as a draggable knob on a horizontal or vertical bar.

Lets users select a value from a given range. Visually, this is represented as a draggable knob on a horizontal or vertical bar.

Fires a ValueChanged event whenever the slider's value changes and when the knob is released.

See also

javax.swing.JSlider

class SplitPane(o: Value, left: Component, right: Component) extends Component with Container with Orientable

A container with exactly two children. Arranges them side by side, either horizontally or vertically. Displays a draggable divider component between them that lets the user adjust the size ratio of the children.

A container with exactly two children. Arranges them side by side, either horizontally or vertically. Displays a draggable divider component between them that lets the user adjust the size ratio of the children.

Value Params
o

the orientation of the divider. Note that we are using Orientation.Horizontal and Orientation.Vertical, which are different from the underlying JSplitPane values. Orientation.Horizontal corresponds with VERTICAL_SPLIT, thus producing a left and right component and a "vertical divider", and Orientation.Vertical corresponds with HORIZONTAL_SPLIT, thus producing a top and bottom component and a "horizontal divider".

See also

javax.swing.JSplitPane

object Swing

Helpers for this package.

Helpers for this package.

abstract class SwingApplication extends Reactor

Convenience class with utility methods for GUI applications.

Convenience class with utility methods for GUI applications.

object TabbedPane
Companion
class
class TabbedPane extends Component with Publisher

Displays the contents of one of several pages at a time. For each page a tab is visible at all times. The user can click on one of these tabs to move the corresponding page to the front.

Displays the contents of one of several pages at a time. For each page a tab is visible at all times. The user can click on one of these tabs to move the corresponding page to the front.

See also

javax.swing.JTabbedPane

Companion
object
object Table
Companion
class
class Table extends Component with Wrapper

Displays a matrix of items.

Displays a matrix of items.

To obtain a scrollable table or row and columns headers, wrap the table in a scroll pane.

See also

javax.swing.JTable

Companion
object
class TextArea(text0: String, rows0: Int, columns0: Int) extends TextComponent with HasColumns with HasRows

A text component that allows multi-line text input and display.

A text component that allows multi-line text input and display.

See also

javax.swing.JTextArea

Companion
class
class TextComponent extends Component with Publisher

A component that allows some kind of text input and display.

A component that allows some kind of text input and display.

See also

javax.swing.JTextComponent

Companion
object
class TextField(text0: String, columns0: Int) extends TextComponent with HasColumns with Trigger

A text component that allows single line text input and display.

A text component that allows single line text input and display.

See also

javax.swing.JTextField

class TextPane extends TextComponent

A text component used to model styled paragraphs of text.

A text component used to model styled paragraphs of text.

See also

javax.swing.JTextPane

class ToggleButton(text0: String) extends AbstractButton

A two state button with a push button like user interface. Usually used in tool bars.

A two state button with a push button like user interface. Usually used in tool bars.

See also

javax.swing.JToggleButton

class ToolBar extends Component with Wrapper

Like a menu, a way to map text or icons to actions; but detachable from the rest of the user interface.

Like a menu, a way to map text or icons to actions; but detachable from the rest of the user interface.

object UIElement
Companion
class
trait UIElement extends Proxy with LazyPublisher

The base trait of all user interface elements. Subclasses belong to one of two groups: top-level elements such as windows and dialogs, or Components.

The base trait of all user interface elements. Subclasses belong to one of two groups: top-level elements such as windows and dialogs, or Components.

See also

java.awt.Component

Note

[Java Swing] This trait does not have an exact counterpart in Java Swing. The peer is of type java.awt.Component since this is the least common upper bound of possible underlying peers.

[Implementation] A UIElement automatically adds itself to the component cache on creation.

Companion
object
abstract class Window extends UIElement with RootPanel with PeerContainer with Publisher

A window with decoration such as a title, border, and action buttons.

A window with decoration such as a title, border, and action buttons.

An AWT window cannot be wrapped dynamically with this class, i.e., you cannot write something like new Window { def peer = myAWTWindow }

See also

javax.swing.JFrame

Types

type Color = Color
type Dimension = Dimension
type Font = Font
type Graphics2D = Graphics2D
type Image = Image
type Insets = Insets
type Point = Point
type Rectangle = Rectangle