CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring...

9
1 1 CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder netBeans IDE create/edit/run a project model-view-controller pattern GUIBuilder JFrame, JButton, JTextField, JTextArea, … 2 BlueJ netBeans BlueJ is an Interactive Development Environment (IDE) designed for novice programmers simple to use visual interface makes class vs. object distinction clear can directly manipulate objects & call methods using mouse clicks can also write and execute statements in the Code Pad however, it is somewhat limiting to experienced programmers netBeans is a popular, industry-strength IDE for developing software free & open-source multi-platform (Mac, Windows, Linux) multi-language (Java, PHP, C/C++, …) has an integrated GUI builder download from netbeans.org

Transcript of CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring...

Page 1: CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder netBeans IDE create/edit/run a project model-view-controller

1

1

CSC 222: Object-Oriented Programming

Spring 2012

netBeans & GUIBuilder   netBeans IDE

create/edit/run a project   model-view-controller pattern   GUIBuilder

JFrame, JButton, JTextField, JTextArea, …

2

BlueJ netBeans

BlueJ is an Interactive Development Environment (IDE) designed for novice programmers   simple to use   visual interface makes class vs. object distinction clear   can directly manipulate objects & call methods using mouse clicks   can also write and execute statements in the Code Pad

however, it is somewhat limiting to experienced programmers

netBeans is a popular, industry-strength IDE for developing software   free & open-source   multi-platform (Mac, Windows, Linux)   multi-language (Java, PHP, C/C++, …)   has an integrated GUI builder

  download from netbeans.org

Page 2: CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder netBeans IDE create/edit/run a project model-view-controller

2

Create a project

3

Select location & project name

4

Page 3: CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder netBeans IDE create/edit/run a project model-view-controller

3

Adding a file to the project

5

Select location & file/class name

6

Page 4: CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder netBeans IDE create/edit/run a project model-view-controller

4

Can then edit the default file

7

Completing a project each class in the project is its own file

  one class must have a public static void main method   when you run the project, this main method is executed

8

Page 5: CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder netBeans IDE create/edit/run a project model-view-controller

5

Editor features •  code completion when type OBJECT., see list of method options

•  Source menu •  Format will try to indent selected lines consistently •  Shift Left / Shift Right will manually indent selected lines •  Toggle Comment comments/uncomments selected lines

•  Refactor   Rename can change a class/variable/method name

throughout the project

•  Run   Build Main Project compile all classes in the project   Run Main Project execute the main method

9

example: Magic 8-ball create a new project named Magic

  use the default option to create a default main class named TerminalUI

download the Die.java class into the src folder of this project

define a new class named Magic8Ball   has a 3-sided Die object as a field   has a getAnswer method that takes a String as input (a question) and returns one of

3 possible answers at random: "Definitely", "No way", or "Outlook hazy"

in the main method of the TerminalUI class,   prompt the user for a question   call getAnswer and display the answer

10

Page 6: CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder netBeans IDE create/edit/run a project model-view-controller

6

MVC pattern

model-view-controller is a software pattern used to develop reusable, modular software   goal: isolate the application-specific logic from the user interface   allows for independent testing & development, easy updates

for this example:   the model consists of the logic of the application – Die & Magic8Ball   the view is the Java terminal window   the controller is the TerminalUI class with its text-based input/output

  by separating the logic from the interface, it makes it possible to plug in a different interface, e.g., a Graphical User Interface (GUI)

11

GUIBuilder netBeans has an integrated GUI builder built-in

  can create a (Swing) GUI using a drag-and-drop interface

12

Page 7: CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder netBeans IDE create/edit/run a project model-view-controller

7

Naming the GUI class

13

GUI design view

14

Page 8: CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder netBeans IDE create/edit/run a project model-view-controller

8

Build interface drag GUI elements from the Palette onto the Design Frame

  can arrange, resize, alter Properties of the elements   in particular, right click and change names of elements to be meaningful

(e.g., questionArea, answerButton, answerBox)

15

Associate events with elements

16

right click on element, select the event you want to handle

Page 9: CSC 222: Object-Oriented Programming Spring 2012 · CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder netBeans IDE create/edit/run a project model-view-controller

9

Source view click on the Source button to see the generated code

17

Completing the GUI add the Controller code to the GUI class

  here, Magic8Ball object is a field, initialized in constructor   code for I/O & method call are entered into the event-handler method

18