1 Event Driven Programming with Graphical User Interfaces (GUIs) A Crash Course © Rick Mercer.

Slides:



Advertisements
Similar presentations
Algorithmic Programming II
Advertisements

Graphic User Interfaces Layout Managers Event Handling.
Java Swing Recitation – 11/(20,21)/2008 CS 180 Department of Computer Science, Purdue University.
Event Driven Programming and GUIs Part 3 CS221 – 4/15/09.
Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
Java GUI Libraries Swing Programming. Swing Components Swing is a collection of libraries that contains primitive widgets or controls used for designing.
Event Handling Events and Listeners Timers and Animation.
Events ● Anything that happens in a GUI is an event. For example: – User clicks a button, presses return when typing text, or chooses a menu item ( ActionEvent.
1 Event Driven Programming with Graphical User Interfaces (GUIs) A Crash Course © Rick Mercer.
GUI and Event-Driven Programming Recitation – 3/6/2009 CS 180 Department of Computer Science, Purdue University.
Graphical User Interfaces
Scott Grissom, copyright 2006Ch 11: GUI Slide 1 Graphical User Interfaces (Ch 11) Careful design of a graphical user interface is key to a viable software.
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.
Chapter 6: Graphical User Interface (GUI) and Object-Oriented Design (OOD) J ava P rogramming: Program Design Including Data Structures Program Design.
A.k.a. GUI’s.  If you want to discuss your Lab 2 grade come see me this week. ◦ Office: 436 ERB. One hour prior to class ◦ Open to Appointments MWF 
Java Programming Chapter 10 Graphical User Interfaces.
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.
Java Programming: From Problem Analysis to Program Design, Second Edition1  Learn about basic GUI components.  Explore how the GUI components JFrame,
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.
GUI programming Graphical user interface-based programming.
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,
CS Lecture 01 Frames and Components and events Lynda Thomas
Graphic User Interface. Graphic User Interface (GUI) Most of us interact with computers using GUIs. GUIs are visual representations of the actions you.
Graphics and Event-Driven Programming in Java John C. Ramirez Department of Computer Science University of Pittsburgh.
Copyright © 2002, Systems and Computer Engineering, Carleton University c-Gui3.ppt * Object-Oriented Software Development Part 18-c Building.
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.
Timer class and inner classes. Processing timer events Timer is part of javax.swing helps manage activity over time Use it to set up a timer to generate.
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
More GUIs, events, static. model.addElement(335); model.addElement(436); } private JTextArea lineDisplay = new JTextArea("Could have\nseveral lines\nhere");
Graphical User Interfaces (Part 2) 1. View  view  presents the user with a sensory (visual, audio, haptic) representation of the model state  a user.
1 GUIs, Layout, Drawing Rick Mercer. 2 Event-Driven Programming with Graphical user Interfaces  Most applications have graphical user interfaces (GUIs)
Java Applets: GUI Components, Events, Etc. Ralph Westfall June, 2010.
GUI Programming using NetBeans. RHS – SOC 2 GUI construction We have previously talked about elements in a (simple) GUI –Frames, Panes and Dialogs –Text.
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
1 / 67 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 14 Programming Fundamentals using Java 1.
Creating a GUI with JFC/Swing. What are the JFC and Swing? JFC –Java Foundation Classes –a group of features to help people build graphical user interfaces.
Java GUI. Graphical User Interface (GUI) a list a button a text field a label combo box checkbox.
Introduction to GUI in 1 Graphical User Interface 2 Nouf Almunyif.
1 GUIs, Layout, Drawing Rick Mercer. 2 Event-Driven Programming with Graphical user Interfaces  Most applications have graphical user interfaces (GUIs)
A simple swing example GETTING STARTED WITH WIND CHILL.
1 GUI programming Graphical user interface-based programming Chapter G1 (pages )
Java Programming: From Problem Analysis to Program Design, 3e Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
Java Programming: From Problem Analysis to Program Design, Second Edition1 Lecture 5 Objectives  Learn about basic GUI components.  Explore how the GUI.
CIS Intro to JAVA Lecture Notes Set 8 9-June-05.
Graphical User Interfaces A Graphical User Interface (GUI) in Java is created with at least three kinds of objects: –components, events, and listeners.
1 Event Driven Programs with a Graphical User Interface Rick Mercer.
JAVA: An Introduction to Problem Solving & Programming, 6 th Ed. By Walter Savitch ISBN © 2012 Pearson Education, Inc., Upper Saddle River,
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,
Chapter 10 - Writing Graphical User Interfaces1 Chapter 10 Writing Graphical User Interfaces.
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.
View  view  presents the user with a sensory (visual, audio, haptic) representation of the model state  a user interface element (the user interface.
Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
MIT AITI 2004 Swing Event Model Lecture 17. The Java Event Model In the last lecture, we learned how to construct a GUI to present information to the.
5-1 GUIs and Events Rick Mercer. 5-2 Event-Driven Programming with Graphical user Interfaces  Most applications have graphical user interfaces to respond.
GUIs & Event-Driven Programming Chapter 11 Review.
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.
GUIs and Events Rick Mercer.
CompSci 230 S Programming Techniques
A First Look at GUI Applications
Graphical User Interface (pronounced "gooey")
Java Programming: From Problem Analysis to Program Design,
Ellen Walker Hiram College
Graphical user interface-based programming
Constructors, GUI’s(Using Swing) and ActionListner
Presentation transcript:

1 Event Driven Programming with Graphical User Interfaces (GUIs) A Crash Course © Rick Mercer

2 Graphical User Interfaces (GUIs)  Most apps provide services through GUIs

3 A Few Graphical Components  To build an event-driven program with a graphical user interface (GUI) — Begin with a well-tested model such as GameOfLife, GameTree, MineSweeper, Boggle — Layout graphical components to allow user interaction — Ensure the correct things happen for each events triggered by user interaction user clicks a button, moves a mouse, presses the enter key, adjusts a slider bar, presses the escape key, clicks the mouse. Select a menu option,...

4 A Few Graphical Components  Java's graphical components include — windows, buttons, text areas, menus, dialog boxes, tables with sortable columns, trees to expand folders, tabbed panes, images,

5 A few types from the swing package  The javax.swing package has many graphical components JFrame : window with title, border, menu, buttons JButton : A component that can "clicked" JLabel : A display area for a small amount of text JTextField : Allows editing of a single line of text

6 Get a "window" to show itself  Have a class extend javax.swing.JFrame — Your new class inherits all the methods and instance variables for putting a window on the computer  Add a main method to call the constructor  Layout Set up the GUI in the constructor — See program on the next slide

7 Can you see the window? import javax.swing.*; // Lot of GUI components now visible public class FirstGUI extends JFrame { public static void main(String[] args) { JFrame aWindow = new FirstGUI(); // Tell the JFrame object to show itself aWindow.setVisible(true); } public FirstGUI() { this.setTitle("Graffiti"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

8 Some JFrame messages  Set the size and location of the window with this.setSize(210, 175); // 200 pixels wide, 150 pixels tall this.setLocation(75, 40); // Upper left corner at 75 40

9 Building Graphical Components  Add these three graphical components to the "content pane" of the JFrame private JLabel aLabel = new JLabel("Change with setText(String)"); private JTextArea textEditor = new JTextArea("You can edit this text "); private JButton clickMeButton = new JButton("Nobody is listening to me");

10 Using Null Layout  By default, JFrame objects have only five places where you can add components a 2nd add wipes out the 1 st  There are many layout strategies, we'll use null layout setLayout(null);  State there is no object to decide where components go  We must set each component's size and location

11 Add components to a window  Add the previously constructed components to the center part of the JFrame this.setLayout(null); aLabel.setSize(180, 30); aLabel.setLocation(5, 0); add(aLabel); textEditor.setSize(180, 60); textEditor.setLocation(5, 35); add(textEditor); clickMeButton.setSize(180, 30); clickMeButton.setLocation(5, 95); add(clickMeButton);

12 Other useful methods  String getText() get the text stored in components JButton JTextArea TextField  void setText(String str) changes the text stored in JButton JTextArea JTextField  Two messages wrap at the word level in a JTextArea default is NO wrapping textEditor.setLineWrap(true); textEditor.setWrapStyleWord(true);

13 Other useful methods textEditor.setBackground(Color.CYAN); textEditor.setFont( new Font("Courier", Font.BOLD, 24));

14 So what happens next?  You can layout a pretty GUI  You can click on buttons, enter text into a text field, move the mouse, press a key — And NOTHING happens  So let’s make something happen …

15 Java's Event Model  Java and the operating system work together to detect user interaction — JButton objects are notified when clicked — JTextField and JTextArea objects with focus know when the user presses the enter key — A MouseListener object knows when the mouse is clicked, pressed, released, or enters/exits a component MouseListener is an interface — A HyperLinkEventListener object knows when the hyperlink has been clicked HyperLinkEventListener is an interface

16 Example: Action Events  The buttons, text fields, and menu items do not perform the actions — Instead JButton, JTextField, JMenuItem objects send actionPerformed messages to other objects  The code that responds to events is often located in actionPerformed methods  We need to have a class that implements the ActionListener interface to guarantee the object has an actionPerformed message

17 How to Handle Events  Add a private inner class that can listen to the event that the component generates Your class must implement a listener interface to guarantee that it has the expected methods: First up: ActionListener  Add the listener so the component can later send actionPerformed messages to the listener Events occur anytime in the future--the listener is listening (waiting for user generated events such as clicking a button or entering text into a text field)

18 Have a class that implements ActionListener // Inner class to listen to events private class ButtonListener implements ActionListener { // clickMeButton will call this method once registered (below) public void actionPerformed(ActionEvent anActionEvent) { // Show contents of the JTextArea JOptionPane.showMessageDialog(null, textEditor.getText()); } // In the constructor of the class that extends JFrame, // register the instance of the listener so the component // can later send messages to that object ButtonListener aListener = new ButtonListener(); clickMeButton.addActionListener(aListener); Caution: This is easy to forget. It is a bug, not a compile time error

19 Active Collaborative Learning  In teams of 2 or 3, on one computer, implement an event- driven program with a GUI to toggle text and colors in a JTextArea with button clicks. Match the GUI