You are on page 1of 21

Application Programming

 Instructor Contact Information:


 John A. Rose, PhD (Assoc. Prof., APU ICT Institute)
 APU Office: Building BII, Fourth Floor
 E-mail: jarose@apu.ac.jp
 Web-site: http://www.apu.ac.jp/~jarose/
Texts and Materials
 Primary Text: ‘Beginning VB.NET 2008’, Ch. 6 +
 Authors: Willis and Newsome
 Publisher: Wiley (2008)

 Course Slides
Course Syllabus (tentative)
 Introduction: Building Windows Applications
 Lecture 1 – Responding to Events
 Lectures 2 – Creating Complex Applications
 Dialog Boxes
 Lecture 3 – Dialog Boxes (1)
 Lecture 4 – Dialog Boxes (2)
 Creating Menus, Debugging, and Error Handling
 Lecture 5 – Creating Menus (1)
 Lecture 6 – Creating Menus (2)
 Lecture 7-8 – Debugging and Error Handling
 Midterm Examination
 Object Oriented Programming
 Lecture 9 – Introduction to Objects
 Lecture 10 – Inheritance
 Lectures 11 – Polymorphism
 Lecture 12 – Shared Class Resources
 Lectures 12 – The .Net Classes
 Final Examination or Submission of Final Project
Course Methodology
 Lecture materials will be distributed at the beginning of each
class…
 Followed by the Lecture.
 Where possible, examples will be presented with figures.
 Each class is 95 minutes. After each lecture-period:
 students will then be provided time for practice (as time permits).
 For a total of 95 minutes (lecture + practice)
 Teaching Assistants (TAs) will be available to answer questions
during the practice period.
 Note: substantial practice and work beyond the class period will
be required.
Course Evaluation (Grading)
 The final grade (100%) will be awarded using the following
criteria for evaluation (tentative):
 Attendance: 20%
 Students should come to each class.
 Note: points will be deducted for lateness or inappropriate behavior.
 Mid-term Exam/Projects: 35%
 Midterm: An In-class test
 After Lecture 7
 Final Examination (comprehensive test): 45%

 Important Notes about grading:


 Do all homework and In class programs (VB .NET Projects).
 As done in class / assigned.

 Note carefully that the above is tentative.


 The above weights/items are subject to change.
Miscellaneous Instructions
 Students should bring their own
data storage devices:
 Necessary for storing work:
 USB 2.0 Flash Memory (preferred)

 64 MB or higher
 Windows XP Compatible
 CD-RW
 650 or 700 MB
 Floppy Disk
 3.5’, 1.4 MB

 These can be purchased in the APU


Book Store.
Lecture 1: Responding to Events
Outline
 Introduction:
 WinForms
 Responding to Events

 Event Example: Multiple Button Events


 Using the Class Name and Member Name combo boxes.
 Adding multiple button events.

 Building a Simple Application: Char/Word Counter


 Using the controls we have…
 And a new control, the Radio Button.
Windows Forms
 The basic element of Applications are Windows:
 As we have seen, Windows support placement of controls…
 Buttons to handle user requests
 Labels, TextBoxes, ListBoxes, etc for GUI-based Input/Output
 Windows support Rapid Application Development (RAD):
 Developers simply draw controls on the screen…
 The ‘Visual’ approach (e.g., VB .NET)
 We have used a blank window called the Design Window (Form1).
 Non-visual: Need to code each Window / Control ‘from scratch’.
 Usually, 1000’s of lines of code required (e.g., Java)
 In Visual Basic, windows are called ‘Forms’
 Sometimes also called ‘WinForms’
 We have already been using Forms in our simple applications…
 Now, we will take a closer look at Forms and Form use.
 Including the use of multiple forms.
 Our Goal: making fully-featured Windows applications.
Event-Driven Programming
 In GUI-based Programming:
 We build a user interface (GUI) to ease user communication...
 By painting controls on the Design Window.
 Each control can recognize certain user actions
 Example: a click.
 In VB .NET, such recognizable actions are called events…
 In other languages (Java), the word ‘action’ is also used.

 We use this Event recognition capability to drive program behavior:


 By coding subroutines called event handlers:
 Sometimes called ‘action listeners’ (Java)…
 Which wait for a specific event, at a specific control.
 These are identified by the ‘Handles’ keyword…
 which registers the event, for us.
 Given occurrence of the registered event (Control, Event).
 The Subroutine’s lines of code are then executed .

 This model of programming is called ‘Event-Driven Programming’


 Let’s take a closer look at the ‘event philosophy’…
 by setting up a button event.
Button Events: A Second Look
 Open up VB Studio .NET and make a new project…
 With a single ‘Welcome’ button:
The Class Name Combo Box
 Next, drop down the list in the Class Name combo box:
 At the top of the Code Window…

 The combo box options will appear, as shown above.


 It mainly lists the Classes and Members added to the current project.
 Here:
1. Form 1 is a Class (an Object definition)
 As denoted by its icon (three connected boxes: purple/blue/yellow)
2. The last two items are slightly indented…
 This means they are all related to Form1.
3. (Form1 Events) are a Events of Form1.
 This is denoted by its icon (a lightning bolt).
4. btnWelcome is a Member of Form1.
 This is denoted by its icon (a small blue box).
The Method Name Combo Box
 Next, drop down the list in the Method Name combo box:
 At the top right of the Code Window…

 The items that appear depend on the Class Name combo box selection:
 Here, Form1 is selected at left…
 So, names of the Libraries, Classes, etc in the current project are listed at right.
 Note that:
1. Selecting the (Declarations) entry takes you to the Class top…
 Where you can change the Class definition, and add members.
2. Items appear either bold (existing) or faint (not yet created).
 Here, the Finalize method can automatically be created by selecting it.
 We will not discuss Finalize until later...
3. Methods are denoted by a small purple square icon.
4. Libraries are denoted by an icon with 4 stacked books.
Adding more Event Handlers
 Next, select btnWelcome in the Class Name combo box:
 Only items related to btnWelcome now appear in the Method Name combo box:
 Specifically, events are shown (icon: lightning bolt)...
 Note that existing events are shown in bold (Click)

 Let’s use this combo box to add 2 more event handlers to btnWelcome…
 By selecting the events, MouseEnter and MouseLeave…
 This creates two new, empty event handlers.

 Now, add the code below to the two new event handlers:
Adding Event Handlers (Test Function)
 Let’s test the function of our simple, 3-event button…
Program 2 – Char/Word Counting Tool
 Let’s practice by making a second application…
 A simple counting utility (tool)

 Goal: Design a tool with the ability to accept input text, and:
 Ability 1: Count the characters in the input Text
 Using the property String.Length
 And the TextBox event handler TextChanged

 Ability 2: Count the words in the input Text

 To allow selection of these actions/abilities by the user:


 We use a new type of control, the Radio Button (rad)
 A user selecting a particular Radio Button sets its Checked property:
 RadioButton.Checked  True
 Only 1 Radio Button can be checked, at one time, in a single group…
 In our case, our group is the entire Container called Form1
 Note: We could also make ‘internal’ groups with Group Boxes.

 First, lets make the GUI and program the Char. Counting ability:
Char/Word Counting Tool (Ability 1)
 First, construct the GUI and program the Character Counting ability:
 We need 3 Labels (lbl), 1 TextBox (txt), 2 Radio Buttons (rad), and 1 button (btn):
Char/Word Counting Tool (Ability 2)
 Again, our goal is to make a tool with two abilities:
 Ability 1: Count the characters in the input Text
 Using the property String.length
 And the TextBox event listener TextChanged

 Ability 2: Count the words in the input Text

 Now, let’s modify our tool to perform its second ability…


Counting Words (Step 1)
 First, let’s add a Function which counts the ‘words’ in an input string…
Counting Words (Step 2)
 Next, add a Function to UPDATE the GUI, for ALL counting activities…
Counting Words (Test Function)

You might also like