Building an ms paint like application in java

Assignment Help JAVA Programming
Reference no: EM132356644

Final Project

Introduction

The Final Project gives you the opportunity to apply the object-oriented software development skills you have acquired during the course to a significant but moderately-sized application. The following sections describe the general behavior of the application and the deliverable requirements for the project.

Starter code can be found on D2L > Content > Final Project.

Overview

We will be building an "MS Paint"-like application in Java called JPaint. It will have the following features:

- Pick a shape
o Ellipse
o Triangle
o Rectangle
- Pick a primary color
- Pick a secondary color
- Select shading type (outline only, filled-in, outline and filled-in)
- Click and drag to draw a shape
- Click and drag to select shapes
- Click and drag to move selected shapes
- Copy selected shapes
- Paste copied shapes
- Delete shape
- Undo last action
- Redo last action
- Group selected shapes
- Ungroup selected shapes
- Selected shapes have dashed outline

I am providing the GUI. You should need to write minimal GUI code. You will need to call into the Java API for drawing shapes. You will also need to write some handlers for click and drag events.

Features by Sprint
Sprint 1 (Ends on Week 4 at 5:30 pm)
- Draw a filled-in Rectangle
o When mouse is click-and-dragged while in Draw mode, a Rectangle will display on the screen. The Rectangle will match the direction and size of the mouse movement.
Sprint 2 (Ends on Week 6 at 5:30 pm)
- Draw Rectangles, Ellipses, and Triangles
- Draw shapes with various colors
- Draw shapes with various shading types
o Outline Only - Only shape outline will be drawn. Use Primary Color to draw this.
o Filled-In - Only the inside of the shape will be drawn - there will be no visible outline. Use Primary Color to draw this.
o Outline and Filled-In - Both the inside and the outline will be drawn. Use Primary Color for the inside and Secondary Color for the outline.
- Select a shape.
o In Select mouse mode, select any shapes that are touched by the invisible bounding box created by clicking and dragging to select. You can use (and share on D2L) a Collision detection algorithm that you find. The selection can be imprecise; when selecting, assume any shape (e.g. ellipse or triangle) have an invisible bounding box that surrounds the shape. You can use that bounding box for your collision detection calculation (this is much easier for you!).
o If you click a single point on the canvas or on a shape while in Select mode, that shape should be selected. This is the default behavior for collision detection - this is easier for you!
o At this point, nothing visible has to happen.
- Move a shape
o In Move Mouse Mode, clicking and dragging will offset any Selected shapes by the amount your mouse moves.
Sprint 3 (Ends on Week 8 at 5:30 pm)

- Copy

o Adds selected shapes to the "clipboard" (just jam them in a list somewhere).
- Paste
o If there is anything copied, paste it on the screen somewhere. You can paste it at origin (0, 0), the middle of the canvas, or somewhere else that makes sense. Do not paste to the same location; this will not be visible and will get marked as "not working".
- Delete
o Deletes the selected shape(s)
- Outline Selected Shapes
o Shapes that are selected will display with a dashed outline around them. These will need to be offset slightly so they don't overlap the shape. Move the start point up and to the left 5px and add 10px to the height and width. You can adjust these values depending on personal preference.
o The outline must be the same shape as the shape that's selected
Sprint 4 (Ends on Week 10 at 5:30 pm)

- Undo
o Undo the last operation. The following need to be Undoable:
• Draw
• Move
• Paste
• Delete
• Group
• Ungroup
- Redo
o Redo the last operation. See undo.
- Group
o Clicking this button will cause all Selected shapes to operate as a group.
o Shapes grouped together should be operated on as if they were one shape.
o To select a grouped shape, any part of the invisible bounding box around the shapes in the group can be selected.
- Ungroup
o Any selected shapes that are grouped shapes will no longer be grouped.

Non-functional requirements
- Must use at least 5 design patterns. Two may be the same kind of pattern.
- Report (see below for details).
- The application must be written in Java using the Java2 SDK 1.8 or higher.
- Only features and capabilities that are part of the Java2 SDK may be used in the application. No third-party software such as BlueJay or JBuilder class libraries or COM/CORBA components.

Attachment:- Java Project.rar

Reference no: EM132356644

Questions Cloud

Development of a firm corporate strategy : Why must operations be included in the development of a firm's corporate strategy?
Decision makers in strategic management and planning : How does contemporary (modern) business environment influence decision makers in strategic management and planning?
Give an example of a company culture : From your own observations, give an example of a company's culture being a strength or a weakness. In what ways was it a strength or weakness?
What is the cost SportStuff incurs : CASE STUDY - Managing Growth at SportStuff. What is the cost SportStuff incurs if all warehouses leased are in St. Louis\
Building an ms paint like application in java : Opportunity to apply the object-oriented software development skills you have acquired during the course to a significant but moderately-sized application
The principal liability on the contract : Crash agrees to have Steve represent him in various transactions as an agent to secure him performance contracts and endorsement deals.
Write code to show the usage of all of the function you have : This function accepts a string of characters and displays it 5 times on the screen. In your main function, you will show its usage.
How learning in course contribute to your effectiveness : Counseling and psychological treatments have evolved over the past century. New theories and practical methods are being developed that will aid in the.
Explain the concept of a hedge : ACC00145 Financial Reporting Assignment Southern Cross University Australia. Explain concept of a hedge. Discuss advantages or disadvantages of hedge accounting

Reviews

len2356644

8/12/2019 10:17:13 PM

Hi, i have attached the source file of the project and pdf with the instructions .i have already completed one sprint and attached the code above.i need the sprint 2,3,4 to be implemented by the deadline and i need a written report too.I have seen a similar project on ur website which is almost same but wanted to make sure if it is the same implementation .Please let me know as soon as possible

len2356644

8/12/2019 10:16:18 PM

For each pattern, in a few sentences, describe the classes involved, why you chose to implement that pattern, and what problem it solved. Include a design class diagram as well. Be sure to include all significant class relationships: realization, specialization, and association. Show associations as dependencies, aggregations or compositions when appropriate. Show attributes and methods only if they are crucial to understanding the class relations (e.g. for Dependency relationships). You do not need to show all fields and methods! 3. Successes and Failures. Discuss what went right with your project? What went wrong? Note design issues that arose during development, such as specific decisions, use of design patterns, failures, successes, etc. This should take 1 page or less.

len2356644

8/12/2019 10:16:10 PM

The written report should be structured as follows: 1. List of missing features, bugs, extra credit, and miscellaneous notes. List features that don’t work and make me aware of any bugs in the code. List any extra credit or any other miscellaneous notes as well. Essentially, list anything I should know when grading. 2. Notes on design. Indicate five design patterns used in your project. There should be some variety in patterns you discuss – you can’t discuss the same pattern more than twice.

len2356644

8/12/2019 10:15:56 PM

A couple notes about the starter code. Main provides you with an idea of how to draw a shape outline, a shape that’s filled-in, and a shape that has an outline and is also filled-in. It also shows how to display a selected shape. Commented out is code that is needed to wipe the canvas clean so you can repaint everything – don’t get fooled by the name of the method. When working with PaintCanvas/Graphics2D, don’t pass the Graphics2D into constructors. Pass the PaintCanvasBase in instead and only get the Graphics2D when you are about to draw. The reason for this is the Graphics2D object can get destroyed by external code, causing things to not show up on the canvas.

len2356644

8/12/2019 10:15:49 PM

Use D2L to talk to your fellow students (and me), bounce ideas off each other, etc. Collaboration is encouraged! However, the code you turn in must be your own. Use Dependency Injection and follow SOLID practices! This will help you keep your code manageable, make it easier to unit test, and allow you to refactor and replace modules more easily. Use Source Control and an IDE! Source Control will help you go back in time when you realized you really screwed up and need to undo. Check in frequently. An IDE is an incredibly useful tool for refactoring. You can extract code into a method or rename a file and all references very easily. It will also help you organize your classes and interfaces.

Write a Review

JAVA Programming Questions & Answers

  What are design patterns and why do we use them

What are design patterns? Why do we use them? Select and submit a Creational Design Pattern; explain why you selected that particular pattern.

  Implement an uml to java code

Need to implement an UML to java code. Choose one of the two UML's and just implement. You are to implement someone else's design, namely, the design that you ranked first (although you are allowed to change your mind at any point if you wish)

  Create a class account that represents a banking account.

Create a class Account that represents a banking account.

  Write a program which adds two matrices

Write a program which adds two matrices together and displays the sum - Two arrays will contain user input, and the third array will be used to contain the sum of the two arrays.

  The class overloaded constructor receives a 2-dim int array

The class overloaded constructor receives a 2-dim int array as a parameter and assigns its values to a private 2-dim int array. Have another method that prints the whole 2-dim table.

  Event logging of all of these operations

Event logging of all of these operations - Any of your own ideas on how to improve functionality - Implement three of these additional features in your TP

  Develop a graphical user interface

COSC1295 Advanced Programming - Develop your skills of using various Java collection classes and exception handling - Practise implementation of various GUI

  Write a program that prompts the user for a start date

You need to write a program that prompts the user for a start date and an end date and then prints all of the dates between them (inclusive), with seven tab-separated dates on each line.

  Create an application with a jframe and five labels

Create an application with a "JFrame" and five labels that contain the names of five friends. Every time the user clicks a "JButton", remove one of the labels and add a different one. Save the file ass JDisappearingFriends.java

  User enters a list of car parts

So if the user enters a list of car parts, the programm holds this list. Afterward, when the user types in the name of the part the programm outputs that name from the list.

  What is the expected big-o running time

What is the expected Big-O running time if an ArrayList is passed. Explain your answer

  What purpose does the wbs serve

What purpose does the WBS serve? Describe the structure of a WBS. How does a WBS contribute to accurate estimates?

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd