1 GUI programming Graphical user interface-based programming Chapter G1 (pages 289-314)

Slides:



Advertisements
Similar presentations
Introduction to Java Classes, events, GUI’s. Understand: How to use TextPad How to define a class or object How to create a GUI interface How event-driven.
Advertisements

Java Swing Recitation – 11/(20,21)/2008 CS 180 Department of Computer Science, Purdue University.
Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
1 Event Driven Programming with Graphical User Interfaces (GUIs) A Crash Course © Rick Mercer.
Chapter 14 Applets. 2 Knowledge Goals Understand the differing roles of applications and applets Understand how a browser operates Understand the role.
Unit 111 Java GUI Components and Events  Learning Outcomes oDistinguish between GUI components and containers. oIdentify and distinguish top-level containers.
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.
Lesson 35: Review of the Java GUI. The JFrame, Container and JButton.
Java Programming Chapter 10 Graphical User Interfaces.
Chapter 9: Applets Jim Burns Fall Outline Learn about applets Learn about applets Write an HTML doc to host an applet Write an HTML doc to host.
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.
Java Programming, 3e Concepts and Techniques Chapter 3 Section 65 – Manipulating Data Using Methods – Java Applet.
1 Event Driven Programming wirh Graphical User Interfaces (GUIs) A Crash Course © Rick Mercer.
Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.
Java Programming: From Problem Analysis to Program Design, Second Edition1  Learn about basic GUI components.  Explore how the GUI components JFrame,
JAPPLET.
Applets and Frames CS 21a: Introduction to Computing I First Semester,
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.
Copyright © Curt Hill First Window Builder Program Easy GUIs in Eclipse.
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.
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.
Swing GUI Components You can create graphics components to place on your applet using classes available in the Swing package ( javax.swing ) Class names.
Chapter 12 1 TOPIC 13B l Buttons and Action Listeners Window Interfaces Using Swing Objects.
CompSci 100E 35.1 Graphical User Interfaces: GUIs  Components  Flat Layouts  Hierarchical Layouts  Designing a GUI  Coding a GUI.
Alice in Action with Java Chapter 14 Events and GUIs.
Layout Managers Arranges and lays out the GUI components on a container.
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.
Java Programming Applets. Topics Write an HTML document to host an applet Understand simple applets Use Labels with simple AWT applets Write a simple.
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.
CompSci Event Handling. CompSci Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.
Introduction to GUI in 1 Graphical User Interface 2 Nouf Almunyif.
Intro to Applets. Applet Applets run within the Web browser environment Applets bring dynamic interaction and live animation to an otherwise static HTML.
A simple swing example GETTING STARTED WITH WIND CHILL.
Java Programming: From Problem Analysis to Program Design, 3e Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
Introduction to Java Chapter 9 - Graphical User Interfaces and Applets1 Chapter 9 Graphical User Interfaces and Applets.
Java Programming: From Problem Analysis to Program Design, Second Edition1 Lecture 5 Objectives  Learn about basic GUI components.  Explore how the GUI.
1 Applications & Applets Standalone applications & Java applets Peter Mozelius DSV/UCSC.
Basics of GUI Programming Chapter 11 and Chapter 22.
Creating a Window. A basic window in Java is represented by an object of the class Window in the package java.awt.
© 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.
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.
Graphical User Interface (GUI)
Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
Applets. 9/04/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved L12: Applets Slide 2 Applets Usually.
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.
Java Visual Applications CSIS 3701: Advanced Object Oriented Programming.
GUI.1 Graphical User Interfaces GUIs. GUI.2 The Plan Components Flat Layouts Hierarchical Layouts Designing a GUI Coding a GUI.
1 Event Driven Programming with Graphical User Interfaces (GUIs) A Crash Course © Rick Mercer.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Chapter 7 ( Book Chapter 14) GUI and Event-Driven Programming.
GUIs and Events Rick Mercer.
Introduction Many Java application use a graphical user interface or GUI (pronounced “gooey”). A GUI is a graphical window or windows that provide interaction.
CSC 205 Programming II Lecture 5 AWT - I.
Java Applet What is a Java Applet? How is applet compiled?
Graphical User Interfaces -- GUIs
Graphical User Interface (pronounced "gooey")
Java Programming: From Problem Analysis to Program Design,
Ellen Walker Hiram College
30 Java Applets.
Graphical user interface-based programming
Constructors, GUI’s(Using Swing) and ActionListner
Chapter 5 Processing Input with Applets
CiS 260: App Dev I Chapter 6: GUI and OOD.
Presentation transcript:

1 GUI programming Graphical user interface-based programming Chapter G1 (pages )

2 Windchill  Windchill There are several formulas for calculating the windchill temperature t wc The one provided by U.S. National Weather Service and is applicable for a windspeed greater than four miles per hour Where  Variable t is the Fahrenheit temperature  Variable v is the windspeed in miles per hour

3 Console-based programming Console program Method main() { statement 1 ; 2 ;... statement m ; } Console programs begin and end in method main()

4 In use

5 GUI-based programming GUI Program main() { GUI gui = new GUI(); } GUI Constructor() { constructor 1 ; 2 ;... constructor n ; } Action Performer() { action 1 ; 2 ;... action k ; } Constructor configures the components of the GUI The action performer implements the task of the GUI. GUI program begins in method main(). On completion, the event dispatching loop is begun Event-dispatching loop do if an event occurs then signal its action listeners until program ends The event-dispatching loop watches for user interactions with the GUI

6 End of lecture on 29 November 2004

7 An old prediction of the future…

8 Java support  JFrame Represents a titled, bordered window  JLabel Represents a display area suitable for one or both of a single-line text or image.  JTextField Represents an editable single-line text entry component  JButton Represents a push button  JTextArea Represents an editable multiline text entry component

9 Instance variables  private JFrame window References the window containing the other components of the GUI

10 Instance variables  private JTextArea legendArea References the text display for the multiline program legend

11 Instance variables  private JLabel fahrTag References the label for the data entry area supplying the temperature

12 Instance variables  private JTextField fahrText References the data area supplying the temperature

13 Instance variables  private JLabel windTag References the label for the data entry area supplying the windspeed

14 Instance variables  private JTextField windText References the data area supplying the windspeed

15 Instance variables  private JLabel chillTag References the label for the data area giving the windchill

16 Instance variables  private JTextField chillText References the data area giving the windchill

17 Instance variables  private JButton runButton References the “Run” button

18 Class constants  private static final String LEGEND = "This windchill calculator" + "is intended for velocities greater than 4 mph.“ Program legend text

19 Class constants  private static final int WINDOW_WIDTH = 350 Initial width of the GUI

20 Class constants  private static final int WINDOW_HEIGHT = 185 Initial height of the GUI

21 Class constants  private static final int AREA_WIDTH = 40 Width of the program legend in characters

22 Class constants  private static final int FIELD_WIDTH = 40 Number of characters per data entry area

23 Class constants  private static final FlowLayout LAYOUT_STYLE = new FlowLaout() References manager that lays out GUI components in a top-to-bottom, left-to-right manner

24 Class constants  Our GUI without a layout manager

25 Class constants  Increased window width changes the layout

26 Program Windchill.java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Windchill implements ActionListener { // class constants // instance variables with initialization // Windchill(): default constructor // actionPerformed(): run button action event handler // main(): application entry point }

27 How much will Christmas cost?   Flash animation (local) Flash animationlocal

28 Program Windchill.java – class constants private static final int WINDOW_WIDTH = 350; // pixels private static final int WINDOW_HEIGHT = 185; // pixels private static final int FIELD_WIDTH = 20; // characters private static final int AREA_WIDTH = 40; // characters private static final FlowLayout LAYOUT_STYLE = new FlowLayout(); private static final String LEGEND = "This windchill " + "calculator is intended for velocities greater than 4 mph.";

29 Program Windchill.java – instance variables // window for GUI private JFrame window = new JFrame("Windchill Calculator"); // legend private JTextArea legendArea = new JTextArea(LEGEND, 2, AREA_WIDTH); // user entry area for temperature private JLabel fahrTag = new JLabel("Fahrenheit temperature"); private JTextField fahrText = new JTextField(FIELD_WIDTH);

30 Program Windchill.java – instance variables // user entry area for windspeed private JLabel windTag = new JLabel(" Windspeed (mph)"); private JTextField windText = new JTextField(FIELD_WIDTH); // entry area for windchill result private JLabel chillTag = new JLabel(" Windchill temperature"); private JTextField chillText = new JTextField(FIELD_WIDTH); // run button private JButton runButton = new JButton("Run");

31 Program Windchill.java – constructor public Windchill() { // configure GUI // register event listener // add components to container // display GUI }

32 Program Windchill.java – constructor public Windchill() { // configure GUI window.setSize(WINDOW_WIDTH, WINDOW_HEIGHT); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); legendArea.setEditable(false);...

33 Bad line wrapping

34 Program Windchill.java – constructor public Windchill() { // configure GUI window.setSize(WINDOW_WIDTH, WINDOW_HEIGHT); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); legendArea.setEditable(false); legendArea.setLineWrap(true); legendArea.setWrapStyleWord(true);...

35 Dangers of an editable legend

36 Program Windchill.java – constructor public Windchill() { // configure GUI window.setSize(WINDOW_WIDTH, WINDOW_HEIGHT); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); legendArea.setEditable(false); legendArea.setLineWrap(true); legendArea.setWrapStyleWord(true); legendArea.setBackground(window.getBackground()); chillText.setEditable(false); chillText.setBackground(Color.WHITE);

37 Bad line wrapping A JLabel is noneditable by the user By default the text field of a JTextField is editable by the user

38 Program Windchill.java – constructor public Windchill() { // configure GUI … // register event listener runButton.addActionListener(this);

39 Run button action-event handling Action Event actionPerformer() Method  Get data entries from temperature and windspeed data areas  Compute windchill according to the Weather Service formula  Display result to windchill data area GUI : Action Listener When the run button is clicked, it dispatches an action event Action events are sent to registered action listeners An ActionListener has an actionPerformer() method that handles the class-specific activity

40 Program Windchill.java – constructor public Windchill() { // configure GUI … // register event listener … // add components to container Container c = window.getContentPane(); c.setLayout(LAYOUT_STYLE); c.add(legendArea); c.add(fahrTag); c.add(fahrText); c.add(windTag); c.add(windText); c.add(chillTag); c.add(chillText); c.add(runButton);

41 Program Windchill.java – constructor public Windchill() { // configure GUI … // register event listener … // add components to container … // make GUI visible window.setVisible(true);

42 Laying out the GUI components Top to bottom, left to right

43 End of lecture on 6 December 2004  We also did course evaluations, went over HW J6 and returned the third midterm today

44 Program Windchill.java – action performer public void actionPerformed(ActionEvent e) { // get user’s responses // compute windchill // display windchill }

45 Program Windchill.java – action performer public void actionPerformed(ActionEvent e) { // get user’s responses String response1 = fahrText.getText(); double t = Double.parseDouble(response1); String response2 = windText.getText(); double v = Double.parseDouble(response2); // compute windchill // display windchill }

46 Program Windchill.java – action performer

47 Program Windchill.java – action performer public void actionPerformed(ActionEvent e) { // get user’s responses String response1 = fahrText.getText(); double t = Double.parseDouble(response1); String response2 = windText.getText(); double v = Double.parseDouble(response2); // compute windchill double windchillTemperature = * (t ) * (3.71*Math.sqrt(v) *v) ; int perceivedTemperature = (int) Math.round(windchillTemperature); // display windchill }

48 Today’s demotivators

49 Program Windchill.java – action performer public void actionPerformed(ActionEvent e) { // get user’s responses String response1 = fahrText.getText(); double t = Double.parseDouble(response1); String response2 = windText.getText(); double v = Double.parseDouble(response2); // compute windchill double windchillTemperature = * (t ) * (3.71*Math.sqrt(v) *v) ; int perceivedTemperature = (int) Math.round(windchillTemperature); // display windchill String output = String.valueOf(perceivedTemperature); chillText.setText(output); }

50 Program Windchill.java – action performer

51 Method main() public static void main(String[] args) { Windchill gui = new Windchill(); }

52 Another method main() public static void main(String[] args) { Windchill gui1 = new Windchill(); Windchill gui2 = new Windchill(); }

54 Text version of WindChill.java public class WindChill { public static void main (String args[]) { Scanner stdin = new Scanner(System.in); System.out.println ("Enter temperature in fahrenheit degrees"); double t = stdin.nextDouble(); System.out.println ("Enter wind speed in miles per hour"); double v = stdin.nextDouble(); double windtemp = * (t ) * (3.71*Math.sqrt(v) *v) ; System.out.println ("The windchill temperature is " + windtemp); }  Obviously should include legend, comments, etc.

55 Applets  Java program run within a browser Implies an applet is run from a web page  Applets may not access or modify the file system running the applet  A modern applet has JApplet as its superclass JApplet is part of the swing package  An applet does use JFrame  A JApplet has a content pane

56 Applets  Important inherited methods init()  Run when browser loads applet start()  Run by browser to start applet execution stop()  Run by browser to stop its execution destroy()  Run by browser immediately before it its ended paint(Graphics g)  Run by browser to refresh its GUI  By default the inherited methods do nothing

57 A simple applet import java.awt.*; import javax.swing.*; public class DisplayQuote extends JApplet { public void paint(Graphics g) { g.drawString("Anyone who spends their life on a " + " computer is pretty unusual.", 20, 30); g.drawString("Bill Gates, Chairman of Microsoft", 25, 45); }

58 Web page – quote.htm Windchill