Graphical User Interfaces -- GUIs

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.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 20, 2005.
Java Swing Recitation – 11/(20,21)/2008 CS 180 Department of Computer Science, Purdue University.
IEEM 110 Computing in Industrial Applications Basic User Interface in Java.
COMP 14 Introduction to Programming Miguel A. Otaduy June 7, 2004.
Layout Mangers CSC 171 FALL 2001 LECTURE 14. History: The Transistor William Shockley, John Bardeen, and Walter Brattain invent the transfer resistance.
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.
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.
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.
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
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.
Copyright © 2002, Systems and Computer Engineering, Carleton University c-Gui3.ppt * Object-Oriented Software Development Part 18-c Building.
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.
Object-Oriented Software Engineering
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.
J McQuillanSE204:2004/2005: Lecture 3Slide 1 Specialised Components Can create specialised components. Do this by subclassing the component that you are.
1 Chapter 16: Creating Windows. 2 Basics of GUI Programming How to create a Window. TryWindow.java You always need a JFrame component before creating.
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)
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.
Dept. of CSIE, National University of Tainan 10/21/2012 Arranging Components on a User Interface.
AWT Vs SWING. 2 AWT (Abstract Window Toolkit) Present in all Java implementations Described in most Java textbooks Adequate for many applications Uses.
GUI.1 Graphical User Interfaces GUIs. GUI.2 The Plan Components Flat Layouts Hierarchical Layouts Designing a GUI Coding a GUI.
Introduction Many Java application use a graphical user interface or GUI (pronounced “gooey”). A GUI is a graphical window or windows that provide interaction.
Object-Orientated Analysis, Design and Programming
Graphical User Interfaces
Swing JComponents.
“Form Ever Follows Function” Louis Henri Sullivan
GUIs Model/View/Controller Layouts
GUIs for Video Games.
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
GUI building with the AWT
Advanced GUIs and Graphics
Graphical User Interface
Presentation transcript:

Graphical User Interfaces -- GUIs The Plan Components Flat Layouts Hierarchical Layouts Designing a GUI Coding a GUI

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

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

Flat Layouts GridLayout BorderLayout CENTER NORTH WEST EAST SOUTH

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

Flat Layouts BorderLayout

Flat Layouts GridLayout

Hierarchical Layouts You can put layouts within layouts:

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

Hierarchical Layouts Virtually every layout we make is a hierarchy of GridLayout and BorderLayout Other Layouts include BoxLayout GridBagLayout FlowLayout CardLayout

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?

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

Examples BorderExample.java (today) In code directory (GUIs.jar) GridExample.java CombinedExample.java

BorderExample.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;

BorderExample.java frame = new JFrame("BorderExample"); 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"); }

BorderExample.java Container container=frame.getContentPane(); 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(); }

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

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

Event Handling The Plan Sequential (Single Thread) Model Event Model Making the GUI interactive Examples

Event Model Program Thread AWT Event Loop

Making the GUI Interactive import java.awt.event.* implements ActionListener write method public void actionPerformed(ActionEvent e) call addActionListener(this) for all JButtons

Examples AdderGUI.java GameShell.java

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

Examples AdderGUI.java { String addend0Text = addend0.getText(); 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); }

Examples AdderGUI.java { frame = new JFrame("Game Shell"); 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); }

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

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"); GameShell.java

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