CSE 1325 Project Description

Similar documents
CSE 1325 Project Description

CSE Lab 8 Assignment Note: This is the last lab for CSE 1341

Swing UI. Powered by Pentalog. by Vlad Costel Ungureanu for Learn Stuff

Swing. By Iqtidar Ali

CONTENTS. Chapter 1 Getting Started with Java SE 6 1. Chapter 2 Exploring Variables, Data Types, Operators and Arrays 13

Contents Introduction 1

Graphical User Interface (GUI) components in Java Applets. With Abstract Window Toolkit (AWT) we can build an applet that has the basic GUI

Contents. 1 Introduction to Computers, the Internet and the Web 1

Handout 14 Graphical User Interface (GUI) with Swing, Event Handling

CS 209 Spring, 2006 Lab 8: GUI Development Instructor: J.G. Neal

Graphical User Interfaces. Swing. Jose Jesus García Rueda

Chapter 6: Graphical User Interfaces

Chapter 12 GUI Basics

Assignment 1. Application Development

Summary Chapter 25 GUI Components: Part 2

Week Chapter Assignment SD Technology Standards. 1,2, Review Knowledge Check JP3.1. Program 5.1. Program 5.1. Program 5.2. Program 5.2. Program 5.

Critical Thinking Assignment #6: Java Program #6 of 6 (70 Points)

Event Driven Programming

CS Fall Homework 5 p. 1. CS Homework 5

Introduction to the JAVA UI classes Advanced HCI IAT351

Java IDE Programming-I

Unit 6: Graphical User Interface

KF5008 Program Design & Development. Lecture 1 Usability GUI Design and Implementation

Contents Chapter 1 Introduction to Programming and the Java Language

Java Programming Lecture 6

Containers and Components

Graphical User Interfaces. Comp 152

CS 251 Intermediate Programming GUIs: Components and Layout

CoSc Lab # 6 (The Model) Due Date: Part I, Experiment classtime, Tuesday, Nov 6 th, 2018.

News and info. Array. Feedback. Lab 4 is due this week. It should be easy to change the size of the game grid.

Graphical User Interfaces in Java - SWING

Graphics programming. COM6516 Object Oriented Programming and Design Adam Funk (originally Kirill Bogdanov & Mark Stevenson)

Programming graphics

To gain experience using GUI components and listeners.

CS Exam 1 Review Suggestions

Part 3: Graphical User Interface (GUI) & Java Applets

Page 1 of 7. public class EmployeeAryAppletEx extends JApplet

Course Status Networking GUI Wrap-up. CS Java. Introduction to Java. Andy Mroczkowski

Top-Level Containers

Table of Contents. Chapter 1 Getting Started with Java SE 7 1. Chapter 2 Exploring Class Members in Java 15. iii. Introduction of Java SE 7...

Layout. Dynamic layout, Swing and general layout strategies

Visit for more.

Lab 4. D0010E Object-Oriented Programming and Design. Today s lecture. GUI programming in

A Tool for Automated GUI Program Grading

Graphical User Interface (GUI)

Window Interfaces Using Swing. Chapter 12

Rizvi College of Arts, Science & Commerce Bandra (W), Mumbai Teaching Plan Academic Year

Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1

2110: GUIS: Graphical User Interfaces

Tool Kits, Swing. Overview. SMD158 Interactive Systems Spring Tool Kits in the Abstract. An overview of Swing/AWT

Window Interfaces Using Swing Objects

All the Swing components start with J. The hierarchy diagram is shown below. JComponent is the base class.

Chapter 12 Advanced GUIs and Graphics

Human-Computer Interaction IS4300

Prototyping a Swing Interface with the Netbeans IDE GUI Editor

Systems Programming Graphical User Interfaces

Starting Out with Java: From Control Structures Through Objects Sixth Edition

Mobile Development Workshop DAY 2: INTRODUCTION TO JAVA

CSSE 220 Day 19. Object-Oriented Design Files & Exceptions. Check out FilesAndExceptions from SVN

Object-Oriented Programming Design. Topic : User Interface Components with Swing GUI Part III

This exam is closed textbook(s) and closed notes. Use of any electronic device (e.g., for computing and/or communicating) is NOT permitted.

Programming Languages and Techniques (CIS120)

DEMYSTIFYING PROGRAMMING: CHAPTER FOUR

"Charting the Course... Java Programming Language. Course Summary

Laying Out Components. What is Widget Layout?

CSSE 220 Day 19. Object-Oriented Design Files & Exceptions. Check out FilesAndExceptions from SVN

Frames, GUI and events. Introduction to Swing Structure of Frame based applications Graphical User Interface (GUI) Events and event handling

Chapter 13 GUI Basics. Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved.

Object Oriented Design & Patterns. Part 1

CoSc Lab # 5 (The Controller)

Java: Graphical User Interfaces (GUI)

Human-Computer Interaction IS4300

Project 3. For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports.

PROGRAMMING DESIGN USING JAVA (ITT 303) Unit 7

Java 11 Swing with Eclipse Index

What is Widget Layout? Laying Out Components. Resizing a Window. Hierarchical Widget Layout. Interior Design for GUIs

Java 11 Swing Index. Section Title Page

Window Interfaces Using Swing Objects

Layout. Dynamic layout Layout design pattern Layout strategies

Introduction p. 1 JFC Architecture p. 5 Introduction to JFC p. 7 The JFC 1.2 Extension p. 8 Swing p. 9 Drag and Drop p. 16 Accessibility p.

Chapter 12 GUI Basics. Motivations. The design of the API for Java GUI programming

CS 1428 Programming Assignment 2 Due Wednesday September 19 th :15 am Section 3 3:45 pm Section 4

No SVN checkout today. Object-Oriented Design

JBuilder 8.0 JFC and Swing Programming

One Club One Team One Vision. Catalog Management

Layout. Dynamic layout Layout design pattern Layout strategies. 2.6 Layout 2

JTcl and Swank. Bruce A. Johnson, Tom Poindexter, & Dan Bodoh. What s new with Tcl and Tk on the JVM. Wednesday, October 26, 11

GUI Basics. Object Orientated Programming in Java. Benjamin Kenwright

Introduction to Graphical User Interfaces (GUIs) Lecture 10 CS2110 Fall 2008

Lecture 18 Java Graphics and GUIs

Topic 9: Swing. Swing is a BIG library Goal: cover basics give you concepts & tools for learning more

Topic 9: Swing. Why are we studying Swing? GUIs Up to now: line-by-line programs: computer displays text user types text. Outline. 1. Useful & fun!

6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5.

Human-Computer Interaction IS4300

Certified Eclipse Bundle

Java 1.9 Swing Index

CSE 143. Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT

Parts of a Contract. Contract Example. Interface as a Contract. Wednesday, January 30, 13. Postcondition. Preconditions.

Certified Eclipse Bundle

CS111: PROGRAMMING LANGUAGE II

Transcription:

CSE 1325 Summer 2016 Object-Oriented and Event-driven Programming (Using Java) Instructor: Soumyava Das Graphical User Interface (GUI), Event Listeners and Handlers Project IV Assigned On: 07/28/2016 Due on: 08/10/2016 (before 11:55pm) Submit by: Blackboard (1 folder containing all the files/sub-folders) https://elearn.uta.edu/ Weight: 15% of total Total Points: 100 You should read the whole document BEFORE starting your design. To help you, added material has been highlighted in this color. Overview of all projects: This is the fourth of the 4 projects over the semester; you will develop an application that captures the operations of an enterprise. The scope of the project will include modeling the components of the enterprise as described in here, choosing the data structures, algorithms, and other aspects of managing information. You will develop a GUI along the way in one of the projects (most likely in project 4). Problem (project 4): The goal of this project is to add a meaningful GUI to the design of the MavBuy project (from project 3). The GUI will be used for managing various aspects of MavBuy and to display useful information using the menu. Exception handling, where applicable, should also be incorporated from this project onwards. Please make sure that you adhere to the OO principles (taught in the lectures and the book) throughout the design and implementation phases. The projects, though small and tailored to the available timeframe, are designed to give you an opportunity to understand and exercise specific OO principles, taught in the course, for each project. Remember, Java is only a vehicle for supporting OOD. Make sure you fully and properly understand and leverage the features available in Java for your design. You will also use UML for your design. In this project, you will be augmenting the design of project 3 by adding a GUI using which all interaction will be done including input error handling. Your project will utilize all the classes and interfaces (designed and provided) from Project 3. You will be adding new classes related to GUI. The following classes developed in Project 3 will be used: 7/28/16 Page 1 of 6 Das

General description of the problem (applicable to all projects) 1. The MavBuy/MavBuyTest class concrete class 2. Employee as abstract class 3. Other classes: Agent, Accountant, Items, Customers etc. as per your design in project 3 Input and code for reading input will be same as project 3. Example code for writing output will also be provided (same as given for project 3). Specifically for this project: You will design and implement a graphical user interface for project 3. All output will be shown in one of the windows of the GUI. Inputs for commands which will also be part of the GUI will be taken from the GUI as text inputs in a window or as selection of drop-down menus or some other form. Once the input data file (containing the menu) is finished, the interface will come up and all further interactions (choosing a command, input and output) will be through this GUI. You may still write your output to the output file as in project 3. What you need to accomplish in this project (and will be graded on). You will use project 3 to process all the commands and then start the GUI: A. You will design a GUI (as a separate class which extends one of swing classes (most likely JFrame) that will accomplish the following. The GUI should: Have at least two of the following containers. Make sure you specify the ones you have used in the comments and in java documentation i. JFrame ii. JLayeredPane iii. JList iv. JPanel v. JTabbedPane Make meaningful use of at least 4 (or more as needed) of the following GUI components: i. JButton ii. JCheckBox iii. JCheckBoxMenuButton iv. JComboBox v. JLabel 7/28/16 Page 2 of 6 Das

vi. JRadioButton vii. JRadioButtonMenuItem viii. JTextArea ix. JTextField x. JMenu xi. JMenuItem xii. JOptionPane xiii. JPasswordField Use at least 2 of the following layout managers for designing the GUI: i. BorderLayout ii. BoxLayout iii. GridLayout iv. FlowLayout v. GridBagLayout vi. CardLayout B. You should be able to perform the following basic operations through your GUI. [Hint: You may design a separate JPanel for each of the operations shown below or use a tabbed pane or something that clearly prompts the user for what needs to be done] a. Show employees (all types), Items and Customers (as buttons, tabs, or separate panels or scrollable lists of id s) b. Execute, one at a time, a list of commands (shown below in section C) with respect to a chosen item in a. c. Accept appropriate input (shown below) from the user to execute each command and handle exceptions in case of incorrect inputs or provide a list to choose from. You can avoid errors in input by providing proper choices to choose from d. Display the formatted output for each command in a scrollable (or a separate) output window. e. All input/output is from GUI only after reading the data file. C. Your program should display and execute the following commands (accept appropriate inputs from the GUI or be able to select an input for each command from the GUI). I. Show Details Input: Allow user to make a single (optionally multiple) selection from employees, items, and customers. 7/28/16 Page 3 of 6 Das

Action: Retrieve corresponding data from objects from the system Output: Display the corresponding details in a meaningful manner (for example, for employees show all employees with their type, date of hire and date of release (if present); for item types, show their details, and for customers show all customers with their status II. Show items sold Input: choose an item type from the list or accept as input Action: retrieve item sale information Output: Display sales of that item (e.g. FZ-35) and the total revenue generated. Optionally, you can also organize along year and subtotals for each year as well as the total. This will help understand the interest of customers for item types III. Show total revenue for the data set Input: choose a year or all as input. Action: compute total revenue for year or all by each category Output: display the revenue generated for that year or for all the data set IV. Display employees (an agent or accountant or web designer) who have been with MavBuy the longest Input: none Action: compute the oldest member using the Date class method. You can find one of the oldest without sorting. Optionally, you can sort and display all oldest clients if more than one. Note that there may be multiple oldest! Output: Display appropriate employee (or employees) details V. List purchase details Input: year and customer id Action: Display items to a single customer Output: For each given customer id show the individual items bought by the customer in that particular year along with the quantity and price (customer portfolio) 7/28/16 Page 4 of 6 Das

VI. Display customers who have spent the highest and lowest amounts by year Input: year Action: compute the total amount spent by each customer and compute the highest and lowest values Output: Display customer names with highest and lowest amounts spent along with the year Make sure that proper error checks, error messages as appropriate are given for the above. For example, you cannot buy an item that does not exist; you cannot list items for a non-existent customer, etc. Coding Style: Be sure to observe standard Java naming conventions and style. These will be observed across all projects for this course, hence it is necessary that you understand and follow them correctly. They include: a. Class names begin with an upper-case letter, as do any subsequent words in the class name. b. Method names begin with a lower-case letter, and any subsequent words in the method name begin with an upper-case letter. c. Class, instance and local variables begin with a lower-case letter, and any subsequent words in the name of that variable begin with an upper-case letter. d. Each set of opening/closing curly braces must be in the same column. All user prompts must be clear and understandable e. Give meaningful names for classes, methods, and variables even if they seem to be long. The point is that the names should be easy to understand for a person looking at your code f. Your program is properly indented to make it understandable. Proper matching of if then else and other control structures is important and should be easily understandable g. Do not put multiple statements in a single line h. All static final variables will be upper case identifiers i. Please use a main method in each class for unit testing that class In addition, ensure that your code is properly documented (apart from javadoc commands) in terms of comments and other forms of documentation wherever necessary. 7/28/16 Page 5 of 6 Das

Grading Scheme: The GUI project will be graded using the following scheme (total) 100 1. Class, fields, and method design, proper use of use of Swing components, event handling using OO principles 35 2. Correctness of the implementation of GUI components 20 3. Correct execution of the overall program 35 4. Look and feel & Ease of use (TA's decision will be binding) 10 Correct design, implementation, and execution of the program constitute a significant percentage of the grade. Please make sure it works correctly before you submit it. We reserve the right to question you about the details of your implementation and testing to make sure you have indeed designed and implemented the project. What and How to Submit: For this project, you will submit the following using the naming convention suggested below: 1. Each.java file will contain one or more related classes All of the above files should be placed in a single zipped folder named as - Proj4_firstname_lastname_final_setion.zip. The folder should then be uploaded using blackboard using your login. Note that blackboard will not permit you to submit after the deadline [11:55 pm] has passed. Please login and familiarize yourself in using blackboard. Please make sure you press the SUBMIT button to make sure the project is submitted. For this project, we will execute and test your submitted code on TA s laptop or a PC. If we have any problems in executing it, we will contact you. You can opt to give a demo for the GUI project to the TA in the class hours on 11th August. 7/28/16 Page 6 of 6 Das