0% found this document useful (0 votes)
35 views

Java Gui Intro

Swing is a GUI widget toolkit for Java that improves on AWT. It features pluggable look and feel, fine-grained control over components, and platform independence. Swing components are lightweight subclasses of JComponent that include containers like JFrame and basic controls like JButton. Layout managers determine component positioning. Common dialogs include JFileChooser and JOptionPane, while common layouts are BorderLayout, FlowLayout, and GridLayout. Events and listeners handle user interaction.

Uploaded by

tibebemakaveli
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views

Java Gui Intro

Swing is a GUI widget toolkit for Java that improves on AWT. It features pluggable look and feel, fine-grained control over components, and platform independence. Swing components are lightweight subclasses of JComponent that include containers like JFrame and basic controls like JButton. Layout managers determine component positioning. Common dialogs include JFileChooser and JOptionPane, while common layouts are BorderLayout, FlowLayout, and GridLayout. Events and listeners handle user interaction.

Uploaded by

tibebemakaveli
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

JAVA Graphical User Interface

JAVA Swing

Slides prepared by : Farzana Rahman 1


Introduction
• Swing – A set of GUI classes

– Part of the Java's standard library

– Much better than the previous library: AWT

• Abstract Window Toolkit

– Contents and shape are separated (MVC support)

– Fine-grained control over the behavior and look and feel

– Platform independent

• Isolates the programmer from the operating system's GUI

Slides prepared by : Farzana Rahman 2


Swing component inheritance hierarchy
• Component defines methods used in its subclasses
– (for example, paint and repaint)
• Container - collection of related components
• When using JFrame, add components to content pane
(a Container)
• JComponent - superclass to most Swing components

java.lang.Object

java.awt.Component

java.awt.Container

javax.swing.JComponent
Slides prepared by : Farzana Rahman 3
Swing components
• Containers
– Contain and manage other components.
– Top Level/Internal
– Examples: JFrame (Top Level), JScrollPane,
JPanel.
• Basic controls
– Atomic components
– Used for showing ouput and/or getting some input
– Inherits JComponent
– Examples: JButton, JLabel, JTextArea,
JTable, Jlist
• Every Swing class extends the corresponding AWT class
– For backward-compatibility reasons
Slides prepared by : Farzana Rahman 4
Jcomponent features

• Pluggable look and feel


– Can look like different platforms, at run-time

• Shortcut keys (mnemonics)


– Direct access to components through keyboard

• Tool tips
– Describe component when mouse rolls over it

Slides prepared by : Farzana Rahman 5


JComponent Methods
• setVisible (boolean mode) true means visible
• setToolTipText (String toolTip) mouse hover shows this text
• setForeground (Color foreColor) foreground color of the
component
• setBackground (Color backcolor) background color of the
component
• setOpaque (boolean mode) background is opaque if true and
transparent if false
• setEnabled (boolean mode) enabled if true and can respond to
user input

Slides prepared by : Farzana Rahman 6


Jframe features
• Constructors:
– JFrame() no text in the title
bar
– JFrame (String titlebartext)
• Methods:
– getContentPane() – returns the
content pane object for the
window
– setDefaultCloseOperation( int
operation) sets the default
operation when the user closes
the “X” in the upper corner
– setSize (int width, int height)
sets the window size in pixels
– setVisible (boolean mode)
displays window if mode = true;
hides if false
Slides prepared by : Farzana Rahman 7
GUI application tasks
• Call constructor of the JFrame superclass
• Get an object reference to the content pane container ‐ GUI
objects are added to this pane
• Set the layout manager to arrange GUI components in the
window
• Instantiate each component
• Add each component to the content pane
• Set the window size
• Display the window

Slides prepared by : Farzana Rahman 8


Example
import javax.swing.*;
import java.awt.BorderLayout;

public class First {


public static void main(String[] args) {
JFrame frame = new JFrame("My First
Frame");

// operation to do when the window is


closed.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_
CLOSE);

frame.getContentPane().setLayout(new
BorderLayout());
frame.getContentPane().add(new JLabel("I
Love Swing"),
BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
Slides prepared by : Farzana Rahman 9
JDialog
• JDialog is directly descended from the Dialog class

• JDialog contains a rootPane hierarchy including a contentPane

• All dialogs are modal, which means the current thread is


blocked until user interaction with it has been completed.

• JOptionPane.showMessageDialog – reports something that has


happened to the user

• JOptionPane.showConfirmDialog – asks for a confirming


response e.g. yes, no, cancel

• JOptionPane.showInputDialog – prompt the user for input

Slides prepared by : Farzana Rahman 10


JFileChooser
• javax.swing.JFileChooser:
– Allows the the user to choose a file
– Supports “open” and “save”:
showOpenDialog(),showSaveDi
alog()

• Example
JFileChooser fc = new
JFileChooser();
int returnVal =
fc.showOpenDialog(null);
if(returnVal ==
JFileChooser.APPROVE_OPTION)
System.out.println("File: "
+ fc.getSelectedFile());

Slides prepared by : Farzana Rahman 11


Layout
• Each container has a layout manager
– Determines the size, location of contained widgets.

• Setting the current layout of a container:


void setLayout(LayoutManager lm)

• LayoutManager implementing classes:


– BorderLayout
– BoxLayout
– FlowLayout
– GridLayout

Slides prepared by : Farzana Rahman 12


Layouts
• BorderLayout
Position must be specified, e.g. add (“North”, myComponent)

Slides prepared by : Farzana Rahman


13
Layouts
• BoxLayout
 The BoxLayout class puts
components in a single row
or column.
 It respects the components’
requested maximum sizes.

Slides prepared by : Farzana Rahman


14
Layouts
• FlowLayout
• FlowLayout is the default layout manager for every JPanel.
• It simply lays out components from left to right, starting new rows if
necessary

Slides prepared by : Farzana Rahman


15
Layouts
• GridLayout
GridLayout simply makes a bunch of components equal in size and
displays them in the requested number of rows and columns .

Slides prepared by : Farzana Rahman


16
Menus

Menu Bar
– JMenuBar()
– add( JMenu )
JMenuItem( String )
JMenuItem( String,int )
Menu
– JMenu( String )
– add( JMenuItem )

Slides prepared by : Farzana Rahman 17


JLabel
• Labels
– Provide text instructions on a GUI
– Read-only text
– Programs rarely change a label's contents
– Class JLabel (subclass of JComponent)

• Methods
– Can declare label text in constructor
– myLabel.setToolTipText( "Text" )
– myLabel.setText( "Text" )
– myLabel.getText()

Slides prepared by : Farzana Rahman 18


JButton
• Methods of class JButton
– Constructors
JButton myButton = new JButton("Label");
JButton myButton = new JButton("Label",
myIcon );
– setRolloverIcon( myIcon )
• Sets image to display when mouse over button
• Class ActionEvent getActionCommand
• returns label of button that generated event

Slides prepared by : Farzana Rahman 19


JCheckBox
• When JCheckBox changes
– ItemEvent generated
• Handled by an ItemListener, which must define
itemStateChanged
– Register handlers with with addItemListener
• Class ItemEvent
– getStateChange
• Returns ItemEvent.SELECTED or
ItemEvent.DESELECTED

Slides prepared by : Farzana Rahman 20


JRadioButton
• Radio buttons
– Have two states: selected and deselected
– Normally appear as a group
• Only one radio button in group selected at time
• Selecting one button forces the other buttons off
– Mutually exclusive options
– ButtonGroup - maintains logical relationship between radio
buttons
• Class JRadioButton
– Constructor
• JRadioButton( "Label", selected )
• If selected true, JRadioButton initially selected
Slides prepared by : Farzana Rahman 21
JList
• List
– Displays series of items
– may select one or more items

• Class JList
– Constructor JList( arrayOfNames )
• Takes array of Objects (Strings) to display in list

– setVisibleRowCount( n )
• Displays n items at a time

• Does not provide automatic scrolling


Slides prepared by : Farzana Rahman 22
More about Swing on
http://java.sun.com/docs/books/tutorial/uiswing

Slides prepared by : Farzana Rahman 23


END

Slides prepared by : Farzana Rahman 24

You might also like