GUI.1 Graphical User Interfaces GUIs. GUI.2 The Plan Components Flat Layouts Hierarchical Layouts Designing a GUI Coding a GUI.

Slides:



Advertisements
Similar presentations
Graphical User Interfaces
Advertisements

CS18000: Problem Solving and Object-Oriented Programming.
Graphic User Interfaces Layout Managers Event Handling.
CMSC 341 Building Java GUIs. 09/26/2007 CMSC 341 GUI 2 Why Java GUI Development? Course is about Data Structures, not GUIs. We are giving you the opportunity.
Corresponds with Chapter 12
Fall 2007CS 225 Graphical User Interfaces Event Handling Appendix C.
Java Swing Recitation – 11/(20,21)/2008 CS 180 Department of Computer Science, Purdue University.
Swing CS-328 Dick Steflik John Margulies. Swing vs AWT AWT is Java’s original set of classes for building GUIs Uses peer components of the OS; heavyweight.
IEEM 110 Computing in Industrial Applications Basic User Interface in Java.
Graphical User Interfaces Allow for interaction with –Buttons –Menus –Text Fields Two Java Libraries to assist in GUI Programming –AWT –Swing.
Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.
Unit 11 Object-oriented programming: Graphical user interface Jin Sa.
Contructing GUI’s in Java Implemented in the Swing API Imported into your programs by: import javax.swing.*; Most Swing programs also need the AWT packages.
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 8: Graphical User Interfaces Objectives - by the end of this chapter, you should be able to do the following: –write a simple graphical user interface.
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.
OOP (Java): Layout/ OOP Objectives – –describe the basic layout managers for GUIs Semester 2, GUI Layout.
Chapter 13 Advanced GUIs and Graphics. Chapter Objectives Learn about applets Explore the class Graphics Learn about the class Font Explore the class.
Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.
Applets and Frames CS 21a: Introduction to Computing I First Semester,
CSE 219 Computer Science III Graphical User Interface.
Graphical User Interface CSI 1101 N. El Kadri. Plan - agenda Graphical components Model-View-Controller Observer/Observable.
Java GUIs and Graphics CNS Outline  Introduction  Events  Components  Layout managers  Drawing  Introduction  Events  Components  Layout.
GUI programming Graphical user interface-based programming.
Java GUI building with Swing. 2 AWT (Abstract Window Toolkit) Present in all Java implementations Described in (almost) every Java textbook Adequate for.
1 Why layout managers Can we perform layout without them? –Yes. A container’s layout property can be set to null. Absolute positioning: specify size and.
GUI Components and Design Here we add one more component to our programs, JButtons –JButtons can only be inserted into JPanels (or JApplets) –Clicking.
CS Lecture 01 Frames and Components and events Lynda Thomas
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.
GUIs for Video Games. The Plan ● Layout suggestions ● Observer/Observable ● Steps to writing Observer/Observables ● Sample Code ● Practice.
CompSci 100E 35.1 Graphical User Interfaces: GUIs  Components  Flat Layouts  Hierarchical Layouts  Designing a GUI  Coding a GUI.
Java's Graphical User Interface Toolkit
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.
GUI Basics. What is GUI? A graphical user interface (GUI) is a type of user interface item that allows people to interact with programs in more ways than.
1 / 67 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 14 Programming Fundamentals using Java 1.
University of Limerick1 Software Architecture Java Layout Managers.
CS 4244: Internet Programming User Interface Programming in Java 1.0.
CompSci Event Handling. CompSci Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.
A simple swing example GETTING STARTED WITH WIND CHILL.
1 GUI programming Graphical user interface-based programming Chapter G1 (pages )
Computer Science 209 GUIs Model/View/Controller Layouts.
Java layout managers. import java.awt.*; import java.awt.event.*; import javax.swing.*; class ButtonPanel extends JPanel implements ActionListener { public.
Basics of GUI Programming Chapter 11 and Chapter 22.
Ajmer Singh PGT(IP) JAVA IDE Programming - I. Ajmer Singh PGT(IP) GUI (Graphical User Interface) It is an interface that uses a graphic entities along.
1 Event Driven Programs with a Graphical User Interface Rick Mercer.
1 Layout Managers Layout managers –Provided for arranging GUI components –Provide basic layout capabilities –Processes layout details –Programmer can concentrate.
CSI 3125, Preliminaries, page 1 Layout Managers. CSI 3125, Preliminaries, page 2 Layout Managers The LayoutManagers are used to arrange components in.
Chapter 10 - Writing Graphical User Interfaces1 Chapter 10 Writing Graphical User Interfaces.
Graphical User Interface (GUI)
Event Handler Methods Text field Object Responder JAVA AWT Environment: Messages are sent between JAVA Objects Screen Event Notification Press Button.
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.
CSC 205 Programming II Lecture 7 AWT – Event Handling & Layout.
Introduction to GUI Programming in Java: Frames, Simple Components, and Layouts.
5-1 GUIs and Events Rick Mercer. 5-2 Event-Driven Programming with Graphical user Interfaces  Most applications have graphical user interfaces to respond.
AWT Vs SWING. 2 AWT (Abstract Window Toolkit) Present in all Java implementations Described in most Java textbooks Adequate for many applications Uses.
Introduction Many Java application use a graphical user interface or GUI (pronounced “gooey”). A GUI is a graphical window or windows that provide interaction.
Graphical User Interfaces
Graphical User Interfaces -- GUIs
Swing JComponents.
GUIs Model/View/Controller Layouts
Ellen Walker Hiram College
Chapter 13: Advanced GUIs and Graphics
Graphical user interface-based programming
Creating Graphical User Interfaces
Steps to Creating a GUI Interface
Advanced GUIs and Graphics
Graphical User Interface
Presentation transcript:

GUI.1 Graphical User Interfaces GUIs

GUI.2 The Plan Components Flat Layouts Hierarchical Layouts Designing a GUI Coding a GUI

GUI.3 Components JLabel text/image display JTextField single line for text input/output JTextArea multiple lines for text input/output JButton used for decisions JFrame a basic window

GUI.4 Components JLabel text/image display JTextField single line for text input/output JTextArea multiple lines for text input/output JButton used for decisions JFrame a basic window

GUI.5 Components JLabel text/image display JTextField single line for text input/output JTextArea multiple lines for text input/output JButton used for decisions JFrame a basic window

GUI.6 Flat Layouts GridLayoutBorderLayout CENTER NORTH SOUTH WEST EAST

GUI.7 Flat Layouts GridLayout Added left to right, top to bottom Expands to fill horizontally and vertically Each space equal width and height BorderLayout Not all positions must be filled CENTER expands horizontally and vertically NORTH and SOUTH expand horizontally WEST and EAST expand vertically

GUI.8 Flat Layouts BorderLayout

GUI.9 Flat Layouts GridLayout

GUI.10 Hierarchical Layouts You can put layouts within layouts:

GUI.11 Hierarchical Layouts Identify the BorderLayout and GridLayouts in the application on the right.

GUI.12 Hierarchical Layouts CENTEREAST

GUI.13 Hierarchical Layouts GridLayout

GUI.14 Hierarchical Layouts GridLayout

GUI.15 Hierarchical Layouts CENTER SOUTH

GUI.16 Hierarchical Layouts CENTER SOUTH

GUI.17 Hierarchical Layouts

GUI.18 Hierarchical Layouts Virtually every layout I make is a hierarchy of GridLayout and BorderLayout Other Layouts include –BoxLayout –GridBagLayout –FlowLayout –CardLayout

GUI.19 Designing a GUI What components are needed? Which components are of primary importance? Secondary? How do the components relate to each other? How big are the components? How can they be arranged into BorderLayout and GridLayout?

GUI.20 Coding a GUI 1.Declare the components as instance variables 2.Write a makeComponents method to initialize the components 3.Write a layoutComponents methods to arrange the components 4.Write a constructor to call the above two methods 5.Write a setVisible method to set the primary component’s visibility (usually a JFrame).

GUI.21 Examples BorderExample.java (today) GridExample.java (in the code directory) CombinedExample.java (in code directory)

GUI.22 BorderLayout.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class BorderExample extends JApplet { JFrame frame; JTextArea middle; JTextField bottom; JButton left, right; JLabel title;

GUI.23 BorderLayout.java private void makeComponents() { frame=new JFrame("BorderExample"); middle=new JTextArea(10, 40); bottom=new JTextField(); left=new JButton("left"); right=new JButton("right"); title=new JLabel("Title"); }

GUI.24 BorderLayout.java private void makeLayout() { Container container=frame.getContentPane(); container.setLayout(new BorderLayout()); container.add(new JScrollPane(middle), BorderLayout.CENTER); container.add(title, BorderLayout.NORTH); container.add(left, BorderLayout.WEST); container.add(right, BorderLayout.EAST); container.add(bottom, BorderLayout.SOUTH); frame.pack(); }

GUI.25 BorderLayout.java public BorderExample() { makeComponents(); makeLayout(); } public void setVisible(boolean vis) { frame.setVisible(vis); }

GUI.26 BorderLayout.java public void init() { main(null); } public static void main(String[] args) { BorderExample example=new BorderExample(); example.setVisible(true); }

GUI.27 Event Handling

GUI.28 The Plan Sequential (Single Thread) Model Event Model Making the GUI interactive Examples Practice

GUI.29 Sequential (Single Thread) Model Program Start Program End

GUI.30 Event Model AWT Event Loop Program Thread

GUI.31 Event Model Program Thread main is called GUI is constructed Thread terminates

GUI.32 Event Model AWT Event Loop Check for input Find event listeners Notify listeners

GUI.33 Making the GUI Interactive 1) import java.awt.event.* 2) implements ActionListener 3) write method public void actionPerformed(ActionEvent e) 4) call addActionListener(this) to all JButton s

GUI.34 Examples AdderGUI.java GameShell.java

GUI.35 Examples AdderGUI.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class AdderGUI extends JApplet implements ActionListener

GUI.36 Examples AdderGUI.java public void actionPerformed(ActionEvent ae) { String addend0Text=addend0.getText(); double addend0Number=Double.parseDouble(addend0Text); String addend1Text=addend1.getText(); double addend1Number=Double.parseDouble(addend1Text); double answer=addend0Number+addend1Number; sum.setText(""+answer); }

GUI.37 Examples AdderGUI.java private void makeComponents() { frame=new JFrame("Game Shell"); addend0=new JTextField(8); addend1=new JTextField(8); sum=new JTextField(8); compute=new JButton("="); compute.addActionListener(this); plus=new JLabel("+"); plus.setHorizontalAlignment(SwingConstants.CENTER); }

GUI.38 Examples GameShell.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GameShell extends JApplet implements ActionListener

GUI.39 Examples GameShell.java public void actionPerformed(ActionEvent ae) { Object cause=ae.getSource(); if(cause==pause) { if(pause.getText().equals("Pause")) { pause.setText("Resume"); shell.setText("Paused"); } else { pause.setText("Pause"); shell.setText("Game Running"); } if(cause==reset) { pause.setText("Start"); shell.setText("Splash"); }

GUI.40 Examples GameShell.java pause=new JButton("Start"); pause.addActionListener(this); reset=new JButton("Start New Game"); reset.addActionListener(this);

GUI.41 Practice Make a 2x2 tic-tac-toe board out of initially blank JButtons. Make the JButton text change to X when the user clicks on it. Make the JButton text change to X and O alternatively as the user clicks on the buttons. Hint: use a boolean instance variable. Make the fonts larger, and maybe add images.