Swing API is an extensible GUI component to ease the developer's life to create java based front-end apps. It follows a Model-View-Controller architecture to satisfy its criteria's. Hence, the contenders need to practice the questions by knowing all the details of the Swing Quiz from the above tabular format.
- SWING Tutorial
- SWING Useful Resources
- Selected Reading
Swing API is a set of extensible GUI Components to ease the developer's life to create JAVA based Front End/GUI Applications. It is build on top of AWT API and acts as a replacement of AWT API, since it has almost every control corresponding to AWT controls. Swing component follows a Model-View-Controller architecture to fulfill the following criterias.
- A single API is to be sufficient to support multiple look and feel.
- API is to be model driven so that the highest level API is not required to have data.
- API is to use the Java Bean model so that Builder Tools and IDE can provide better services to the developers for use.
MVC Architecture
Swing API architecture follows loosely based MVC architecture in the following manner.
- Model represents component's data.
- View represents visual representation of the component's data.
- Controller takes the input from the user on the view and reflects the changes in Component's data.
- Swing component has Model as a seperate element, while the View and Controller part are clubbed in the User Interface elements. Because of which, Swing has a pluggable look-and-feel architecture.
Swing Features
- Light Weight − Swing components are independent of native Operating System's API as Swing API controls are rendered mostly using pure JAVA code instead of underlying operating system calls.
- Rich Controls − Swing provides a rich set of advanced controls like Tree, TabbedPane, slider, colorpicker, and table controls.
- Highly Customizable − Swing controls can be customized in a very easy way as visual apperance is independent of internal representation.
- Pluggable look-and-feel − SWING based GUI Application look and feel can be changed at run-time, based on available values.
- SWING Tutorial
- SWING Useful Resources
- Selected Reading
Every user interface considers the following three main aspects −
- UI Elements − These are the core visual elements the user eventually sees and interacts with. GWT provides a huge list of widely used and common elements varying from basic to complex, which we will cover in this tutorial.
- Layouts − They define how UI elements should be organized on the screen and provide a final look and feel to the GUI (Graphical User Interface). This part will be covered in the Layout chapter.
- Behavior − These are the events which occur when the user interacts with UI elements. This part will be covered in the Event Handling chapter.
Every SWING controls inherits properties from the following Component class hiearchy.
S.No. | Class & Description |
---|---|
1 | Component A Component is the abstract base class for the non menu user-interface controls of SWING. Component represents an object with graphical representation |
2 | Container A Container is a component that can contain other SWING components |
3 | JComponent A JComponent is a base class for all SWING UI components. In order to use a SWING component that inherits from JComponent, the component must be in a containment hierarchy whose root is a top-level SWING container |
SWING UI Elements
Following is the list of commonly used controls while designing GUI using SWING.
S.No. | Class & Description |
---|---|
1 | JLabel A JLabel object is a component for placing text in a container. |
2 | JButton This class creates a labeled button. |
3 | JColorChooser A JColorChooser provides a pane of controls designed to allow a user to manipulate and select a color. |
4 | JCheck Box A JCheckBox is a graphical component that can be in either an on (true) or off (false) state. |
5 | JRadioButton The JRadioButton class is a graphical component that can be in either an on (true) or off (false) state. in a group. |
6 | JList A JList component presents the user with a scrolling list of text items. |
7 | JComboBox A JComboBox component presents the user with a to show up menu of choices. |
8 | JTextField A JTextField object is a text component that allows for the editing of a single line of text. |
9 | JPasswordField A JPasswordField object is a text component specialized for password entry. |
10 | JTextArea A JTextArea object is a text component that allows editing of a multiple lines of text. |
11 | ImageIcon A ImageIcon control is an implementation of the Icon interface that paints Icons from Images |
12 | JScrollbar A Scrollbar control represents a scroll bar component in order to enable the user to select from range of values. |
13 | JOptionPane JOptionPane provides set of standard dialog boxes that prompt users for a value or informs them of something. |
14 | JFileChooser A JFileChooser control represents a dialog window from which the user can select a file. |
15 | JProgressBar As the task progresses towards completion, the progress bar displays the task's percentage of completion. |
16 | JSlider A JSlider lets the user graphically select a value by sliding a knob within a bounded interval. |
17 | JSpinner A JSpinner is a single line input field that lets the user select a number or an object value from an ordered sequence. |