©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 14 - 1 Chapter 7-2 ( Book Chapter 14) GUI and Event-Driven Programming.

Slides:



Advertisements
Similar presentations
Drawing in a frame – Java GUI
Advertisements

F27SB2 Programming Languages
Java Swing Recitation – 11/(20,21)/2008 CS 180 Department of Computer Science, Purdue University.
Gui Interfaces a la Swing Up to speed with Swing by Steven Gutz is a good source It don’t mean a thing if it ain’t got that swing Duke Ellington.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 7 Event-Driven Programming and Basic GUI Objects.
COMPSCI 125 Spring 2005 ©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 7 : Event-Driven Programming and GUI Objects.
IEEM 110 Computing in Industrial Applications Basic User Interface in Java.
Chapter 7 Event-Driven Programming and Basic GUI Objects.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 14 GUI and Event-Driven Programming.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 14 GUI and Event-Driven Programming.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 14 GUI and Event-Driven Programming.
Creating a GUI with Swing. Introduction Very useful link: Swing – is a part of JFC (Java Foundation.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Chapter 14 GUI and Event-Driven Programming.
GUI and Event-Driven Programming Part 2. Event Handling An action involving a GUI object, such as clicking a button, is called an event. The mechanism.
1 Class 8. 2 Chapter Objectives Use Swing components to build the GUI for a Swing program Implement an ActionListener to handle events Add interface components.
Lesson 35: Review of the Java GUI. The JFrame, Container and JButton.
Introduction to GUI Java offers a great number of pre-defined classes to support the development of graphical user interfaces –These are broken down into.
1 Event Driven Programming wirh Graphical User Interfaces (GUIs) A Crash Course © Rick Mercer.
Applets and Frames CS 21a: Introduction to Computing I First Semester,
CSE 219 Computer Science III Graphical User Interface.
Introduction to GUI in Java 1. Graphical User Interface Java is equipped with many powerful,easy to use GUI component such as input and output dialog.
Graphical User Interface CSI 1101 N. El Kadri. Plan - agenda Graphical components Model-View-Controller Observer/Observable.
MIT AITI 2003 Lecture 17. Swing - Part II. The Java Event Model Up until now, we have focused on GUI's to present information (with one exception) Up.
עקרונות תכנות מונחה עצמים תרגול 4 - GUI. Outline  Introduction to GUI  Swing  Basic components  Event handling.
1 Event Driven Programs Rick Mercer. 2 So what happens next?  You can layout a real pretty GUI  You can click on buttons, enter text into a text field,
GUI Components and Design Here we add one more component to our programs, JButtons –JButtons can only be inserted into JPanels (or JApplets) –Clicking.
Graphical User Interface in Java
Previous programs used a JLabel for OUTPUT. Another Swing component that can be used for both user input and output is the JTextfield. Suppose we want.
1 CSC111H Graphical User Interfaces (GUIs) Introduction GUIs in Java Understanding Events A Simple Application The Containment Hierarchy Layout Managers.
Graphic User Interface. Graphic User Interface (GUI) Most of us interact with computers using GUIs. GUIs are visual representations of the actions you.
GUI Clients 1 Enterprise Applications CE00465-M Clients with Graphical User Interfaces.
Even-Driven Programming and basic Graphical User Interface.
MSc Workshop - © S. Kamin, U. ReddyLect 3 - GUI -1 Lecture 3 - Graphical User Interfaces r GUI toolkits in Java API r JFrame r GUI components.
Applets and Frames. Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved L14: GUI Slide 2 Applets Usually.
1 Class 6. 2 Objectives Objectives Enable your applications to perform actions in response to JButton clicks Get the text the user enters in a textfield.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 15 Creating User.
Java GUI. Graphical User Interface (GUI) a list a button a text field a label combo box checkbox.
CompSci Event Handling. CompSci Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.
DCS2133 Object Oriented Programming Graphical User Interface & Event-Driven Programming.
Introduction to GUI in 1 Graphical User Interface 2 Nouf Almunyif.
A simple swing example GETTING STARTED WITH WIND CHILL.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Outline 8.1 Test-Driving the Car Payment Calculator.
CHAPTER 10 EVENT HANDLING. CHAPTER GOALS To understand the Java event model To install mouse and action listeners To accept mouse and text input To display.
Basics of GUI Programming Chapter 11 and Chapter 22.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Tutorial 4 – Completing the Inventory Application.
1 Event Driven Programs with a Graphical User Interface Rick Mercer.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Outline 5.1 Test-Driving the Enhanced Inventory Application.
Event-Driven Programming F Procedural programming is executed in procedural order. F In event-driven programming, code is executed upon activation of events.
Java - hello world example public class HelloWorld { public static void main (String args[]) { System.out.println("Hello World"); }
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Outline 17.1 Test-Driving the Student Grades Application.
Swing GUI Components So far, we have written GUI applications which can ‘ draw ’. These applications are simple, yet typical of all Java GUI applications.
Lesson 28: More on the GUI button, frame and actions.
Graphical User Interface (GUI)
Frame Windows Application program, not applet Construct and show frame JFrame frame = new JFrame(); *** frame.show(); *** Set default close operation..
5-1 GUIs and Events Rick Mercer. 5-2 Event-Driven Programming with Graphical user Interfaces  Most applications have graphical user interfaces to respond.
Java Visual Applications CSIS 3701: Advanced Object Oriented Programming.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Chapter 7 ( Book Chapter 14) GUI and Event-Driven Programming.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 7 Event-Driven Programming and Basic GUI Objects.
Multiple buttons and action calls
Introduction Many Java application use a graphical user interface or GUI (pronounced “gooey”). A GUI is a graphical window or windows that provide interaction.
Chapter 8 Event Handling.
Graphical User Interface (pronounced "gooey")
Ellen Walker Hiram College
MVC Paradigm The MVC paradigm breaks applications or interfaces into three parts: the model, the view, and the controller. A --> 25 % B --> 60 % C -->
Chapter 7-2 (Book Chapter 14)
Chapter 7 (Book Chapter 14)
Chapter 7-2 (Book Chapter 14)
GUI and Event-Driven Programming
Graphical User Interface
Presentation transcript:

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Chapter 7-2 ( Book Chapter 14) GUI and Event-Driven Programming

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter GUI Classes for Handling Text The Swing GUI classes JLabel, JTextField, and JTextArea deal with text. A JLabel object displays uneditable text (or image). A JTextField object allows the user to enter a single line of text. A JTextArea object allows the user to enter multiple lines of text. It can also be used for displaying multiple lines of uneditable text.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter JTextField We use a JTextField object to accept a single line to text from a user. An action event is generated when the user presses the ENTER key. The getText method of JTextField is used to retrieve the text that the user entered. JTextField input = new JTextField( ); contentPane.add(input); input.addActionListener(eventListener);

JTextField ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter We want to write a program that displays the text of the clicked button (OK or CANCEL), or the text entered in the text field

import javax.swing.*; import java.awt.*; import java.awt.event.*; class Ch14TextFrame1 extends JFrame implements ActionListener { private static final int FRAME_WIDTH = 300; private static final int FRAME_HEIGHT = 200; private static final int FRAME_X_ORIGIN = 150; private static final int FRAME_Y_ORIGIN = 250; private JButton cancelButton; private JButton okButton; private JTextField inputLine; public static void main(String[] args) { Ch14TextFrame1 frame = new Ch14TextFrame1(); frame.setVisible(true); } public Ch14TextFrame1() { Container contentPane; setSize (FRAME_WIDTH, FRAME_HEIGHT); setResizable (false); setTitle ("Program Ch14TextFrame1"); setLocation (FRAME_X_ORIGIN, FRAME_Y_ORIGIN); contentPane = getContentPane( ); contentPane.setLayout(new FlowLayout()); ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter JTextField

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter inputLine = new JTextField(); inputLine.setColumns(22); inputLine.setFont(new Font("Courier", Font.PLAIN, 14)); contentPane.add(inputLine); inputLine.addActionListener(this); okButton = new JButton("OK"); contentPane.add(okButton); cancelButton = new JButton("CANCEL"); contentPane.add(cancelButton); //register this frame as an action listener of the two buttons cancelButton.addActionListener(this); okButton.addActionListener(this); //register 'Exit upon closing' as a default close operation setDefaultCloseOperation( EXIT_ON_CLOSE ); }

public void actionPerformed(ActionEvent event) { if (event.getSource() instanceof JButton) { JButton clickedButton = (JButton) event.getSource(); String buttonText = clickedButton.getText(); setTitle("You clicked " + buttonText); } else { //the event source is inputLine setTitle("You entered '" + inputLine.getText() + "'"); } } ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter JTextField

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter JLabel We use a JLabel object to display a label. A label can be a text or an image. When creating an image label, we pass ImageIcon object instead of a string. JLabel textLabel = new JLabel(); textLabel.setText("Please enter your name"); textLabel.setSize(150,25); contentPane.add(textLabel); //we can also set the text at the time of object creation. JLabel Prompt = new JLabel ("Please enter your age");...

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter JLabel with an Image JLabel (with an image) JLabel (with a text) JTextField JLabel imgLabel = new JLabel(new ImageIcon("cat.gif")); contentPane.add(imgLabel);

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter JTextArea We use a JTextArea object to display or allow the user to enter multiple lines of text. The setText method assigns the text to a JTextArea, replacing the current content. The append method appends the text to the current text. JTextArea textArea = new JTextArea( );... textArea.setText("Hello\n"); textArea.append("the lost "); textArea.append("world"); Hello the lost world JTextArea

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter We want to create a frame with a JTextField and a JTextArea When the user enters a text in the JTextField, and then presses Enter or clicks the ADD button,the entered text will be appended to the JTextArea When the user clicks CLEAR the text in the JTextArea will be cleared JTextArea JTextField JTextArea

import javax.swing.*; import java.awt.*; import java.awt.event.*; class Ch14TextFrame3 extends JFrame implements ActionListener { private static final int FRAME_WIDTH = 300; private static final int FRAME_HEIGHT = 250; private static final int FRAME_X_ORIGIN = 150; private static final int FRAME_Y_ORIGIN = 250; private static final String EMPTY_STRING = ""; private static final String NEWLINE = "\n"; private JButton clearButton; private JButton addButton; private JTextField inputLine; private JTextArea textArea; public static void main(String[] args) { Ch14TextFrame3 frame = new Ch14TextFrame3(); frame.setVisible(true); } ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter JTextArea

public Ch14TextFrame3() { Container contentPane; setSize (FRAME_WIDTH, FRAME_HEIGHT); setResizable (false); setTitle ("Program Ch14TextFrame3"); setLocation (FRAME_X_ORIGIN, FRAME_Y_ORIGIN); contentPane = getContentPane( ); contentPane.setLayout(new FlowLayout()); textArea = new JTextArea(); textArea.setColumns(22); textArea.setRows(8); textArea.setBorder(BorderFactory.createLineBorder(Color.red)); textArea.setEditable(false); contentPane.add(textArea); ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter JTextArea

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter inputLine = new JTextField(); inputLine.setColumns(22); contentPane.add(inputLine); inputLine.addActionListener(this); //create and place two buttons on the frame addButton = new JButton("ADD"); contentPane.add(addButton); addButton.addActionListener(this); clearButton = new JButton("CLEAR"); contentPane.add(clearButton); clearButton.addActionListener(this); //register 'Exit upon closing' as a default close operation setDefaultCloseOperation( EXIT_ON_CLOSE ); } JTextArea

public void actionPerformed(ActionEvent event) { if (event.getSource() instanceof JButton) { JButton clickedButton = (JButton) event.getSource(); if (clickedButton == addButton) { addText(inputLine.getText()); } else { clearText( ); } } else { //the event source is inputLine addText(inputLine.getText()); } } // private void addText(String userInput) { textArea.append(userInput + NEWLINE); inputLine.setText(EMPTY_STRING); } // private void clearText( ) { textArea.setText(EMPTY_STRING); inputLine.setText(EMPTY_STRING); } } Chapter JTextArea

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Ch14TextFrame3 The state of a Ch14TextFrame3 window after six words are entered.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Adding Scroll Bars to JTextArea By default a JTextArea does not have any scroll bars. To add scroll bars, we place a JTextArea in a JScrollPane object. JTextArea textArea = new JTextArea();... JScrollPane scrollText = new JScrollPane(textArea);... contentPane.add(scrollText);

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Ch14TextFrame3 with Scroll Bars A sample Ch14TextFrame3 window when a JScrollPane is used.