java gui. graphical user interface (gui) a list a button a text field a label combo box checkbox

Post on 17-Jan-2016

221 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Java GUIJava GUI

Graphical User Interface (GUI)

a list

a button

a text field

a label

combo box

checkbox

Graphical User Graphical User InterfacesInterfaces GUI’s, AWT, and SwingGUI’s, AWT, and Swing

– AWT AWT (Abstract Window Toolkit) is the (Abstract Window Toolkit) is the original Java classes used for GUI original Java classes used for GUI development.development.

– Java 2 includes an improved toolkit, Java 2 includes an improved toolkit, named named SwingSwing, to improve on AWT., to improve on AWT. Swing components are easier to use, Swing components are easier to use,

more portable, and provide more more portable, and provide more functionality than older AWT components.functionality than older AWT components.

Inheritance HelpsInheritance Helps

Since Swing was designed as an Since Swing was designed as an improvement of AWT, it made improvement of AWT, it made sense not to start from scratch sense not to start from scratch when designing the Swing when designing the Swing components.components.

To differentiate them, Swing To differentiate them, Swing components have names that components have names that begin with the letter “J”.begin with the letter “J”.

Graphical User Graphical User InterfacesInterfaces GUI’s and the Java Swing GUI’s and the Java Swing

componentscomponents– JComponentJComponent is the ancestor of many is the ancestor of many

Swing classes. Here are some Swing classes. Here are some descendants of the Jcomponent class.descendants of the Jcomponent class. JButtonJButton JPanelJPanel JLabelJLabel JTextAreaJTextArea

WindowsWindows

We will use the class We will use the class JFrameJFrame to to create GUI windows.create GUI windows.– javax.swing.JFrame inherits from javax.swing.JFrame inherits from

java.awt.Framejava.awt.Frame– Every JFrame object has a “content Every JFrame object has a “content

pane” associated with it.pane” associated with it. Content panes are of type Content panes are of type

java.awt.Containerjava.awt.Container

What to ImportWhat to Import When we design GUI programs, When we design GUI programs,

there are three packages we will there are three packages we will need to import:need to import:– java.awt.*java.awt.*– java.awt.event.*java.awt.event.*– javax.swing.*javax.swing.*

The java.awt.event package The java.awt.event package provides us with the capability to provides us with the capability to respond to user interface “events”, respond to user interface “events”, such as the pushing of a button.such as the pushing of a button.

Displaying a WindowDisplaying a Window

The most common form of a The most common form of a window displayed via Swing is a window displayed via Swing is a JFrame.JFrame.– Next, we will see several example Next, we will see several example

programs that will:programs that will: display JFramesdisplay JFrames place Swing objects in framesplace Swing objects in frames Exhibit Exhibit event-drivenevent-driven programming programming

– ““Listeners” will be used to respond to mouse Listeners” will be used to respond to mouse events.events.

Example GUIoneExample GUIone

Creating a JFrameCreating a JFrame– new JFrame()new JFrame()

Setting the size of our frame.Setting the size of our frame.– setSize(…);setSize(…);

Displaying the frameDisplaying the frame– setVisible(true)setVisible(true)

FirstFrame.javaFirstFrame.java

import javax.swing.*;

class FirstFrame extends JFrame{ public FirstFrame() { super("FirstFrame"); setSize(300, 200); setVisible(true); } public static void main(String[] args) { JFrame frame = new FirstFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}

Putting content in a Putting content in a GUIGUI Frames constitute GUI real estateFrames constitute GUI real estate Organization of space: Organization of space:

– Via other containersVia other containers Each container defines and manages an area Each container defines and manages an area

within the GUIwithin the GUI– e.g. menu bars, scroll bars, tool bars, panels, etc.e.g. menu bars, scroll bars, tool bars, panels, etc.

Containers can be nestedContainers can be nested Individual components added into those Individual components added into those

Containers Containers Containers may decide on their Containers may decide on their layout (will be layout (will be

discussed later)discussed later)

LabelTestLabelTest

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

public class LabelTest extends JFramepublic class LabelTest extends JFrame{ public LabelTest(){ public LabelTest() { setTitle("Label Test");{ setTitle("Label Test"); JLabel helloLabel = new JLabel("Hello");JLabel helloLabel = new JLabel("Hello");

add( helloLabel);add( helloLabel); setSize(300, 200);setSize(300, 200); setVisible(true);setVisible(true); }} public static void main(String[] args)public static void main(String[] args) { LabelTest t = new LabelTest();{ LabelTest t = new LabelTest(); t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}}}

Event HandlingEvent Handling

Perform some functionalities when the Perform some functionalities when the button is pressbutton is press

Need to have a class that implements Need to have a class that implements ActionListenerActionListener

The functionalities needed to perform will The functionalities needed to perform will be put in the actionPerformed methodbe put in the actionPerformed method

Create an instance of this type of Create an instance of this type of ActionListener ActionListener

Register the handler with the componentRegister the handler with the component

ButtonTestButtonTestpublic class ButtonTest extends JFramepublic class ButtonTest extends JFrame{ public ButtonTest(){ public ButtonTest() { setTitle("Button Test");{ setTitle("Button Test"); JButton helloButton = new JButton("Hello");JButton helloButton = new JButton("Hello"); add( helloButton);add( helloButton); // create an instance of inner class ButtonHandler to use for button event handling // create an instance of inner class ButtonHandler to use for button event handling ButtonHandler handler = new ButtonHandler();ButtonHandler handler = new ButtonHandler(); //register the handler //register the handler helloButton.addActionListener( handler );helloButton.addActionListener( handler ); setSize(300, 200);setSize(300, 200); setVisible(true);setVisible(true); } } // inner class for button event handling// inner class for button event handling private class ButtonHandler implements ActionListener {private class ButtonHandler implements ActionListener {

// handle button event// handle button event public void actionPerformed( ActionEvent event )public void actionPerformed( ActionEvent event ) {{ JOptionPane.showMessageDialog( null,JOptionPane.showMessageDialog( null, "You pressed: " + event.getActionCommand() );"You pressed: " + event.getActionCommand() ); }}

} // end private inner class ButtonHandler} // end private inner class ButtonHandler public static void main(String[] args)public static void main(String[] args) { ButtonTest t = new ButtonTest();{ ButtonTest t = new ButtonTest(); t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}}}

No inner classNo inner classpublic class ButtonTest2 extends JFrame implements ActionListenerpublic class ButtonTest2 extends JFrame implements ActionListener{ { public ButtonTest2()public ButtonTest2() { { setTitle("Button Test");setTitle("Button Test"); JButton helloButton = new JButton("Hello");JButton helloButton = new JButton("Hello"); add( helloButton);add( helloButton); helloButton.addActionListener( this ); //register the handler (the frame itself)helloButton.addActionListener( this ); //register the handler (the frame itself) setSize(300, 200);setSize(300, 200); setVisible(true);setVisible(true); } } // handle button event// handle button event public void actionPerformed( ActionEvent event )public void actionPerformed( ActionEvent event ) {{ JOptionPane.showMessageDialog( null,JOptionPane.showMessageDialog( null, "You pressed: " + event.getActionCommand() );"You pressed: " + event.getActionCommand() ); }} public static void main(String[] args)public static void main(String[] args) { { ButtonTest2 t = new ButtonTest2();ButtonTest2 t = new ButtonTest2(); t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}}}

ExampleExample

JTextfieldJTextfield

Get Length of square in a Get Length of square in a Jtextfield and output the areaJtextfield and output the area

top related