COS240 O-O Languages AUBG, COS dept Lecture 33 Title: C# vs. Java (GUI Programming) Reference:...

Post on 13-Jan-2016

218 views 0 download

Tags:

Transcript of COS240 O-O Languages AUBG, COS dept Lecture 33 Title: C# vs. Java (GUI Programming) Reference:...

COS240 O-O Languages AUBG, COS dept

Lecture 33Title:

C# vs. Java(GUI Programming)

Reference: COS240 Syllabus

Lecture Contents:

• Contrast btw the functions of Windows applications and console applications

• GUI - graphical user interfaces• Windows forms and form properties• Control objects such as buttons, labels,

and text boxes to a form

Contrasting Windows and Console Applications

• Console applications– Each line in Main( ) method executed sequentially –

then the program halts – Method calls might branch to different locations in the

program, however control always returns back to Main– Program initiates interaction with the user by calling

the OS to get data using ReadLine() method– Program calls OS to output data through method calls

like WriteLine() or Write()• Console applications run IPO model of

computing process

Contrasting Windows and Console Applications

• Windows applications– Instead of the program executing sequential

statements from top to bottom, the application, once launched, sits in what is called a process loop and waits for an event

– Sits in a process loop, waiting for event to execute

• Windows applications run Event-driven model of a computing process

Contrasting Windows and Console Applications

• Event: notification from OS that an action, such as the user clicking the mouse or the user pressing a key, has occurred

• Instead of calling the OS with IO request as console applications, Windows applications receive messages from OS that event has occurred

• It is must to write methods, called Event Handlers to indicate what should be done when an event occurs

Graphical User Interface

• Windows applications also look different from console applications

• User Interface: front end of a program– Visual image you see when you run a program– Algorithmic functionality stays behind GUI– Often users of programs actually identify the

interface of the program itself, when in reality, the interface is just one facet of the program.

– Algorithmic complexity is hidden behind GUI.

Graphical User Interface

• Graphical user interface (GUI) includes:– Menus, labels, text boxes, list boxes, – Other controls (pictures, buttons, etc.)– Text in many different colors and sizes

• Controls are objects that can display and respond to user interaction.

• Controls are placed in a container, called form, which is an object as well. It is instance of a class derived from predefined class Form

Windows Based Applications

• Windows Forms

• Events

• Controls

Chapter 9

Introduction to Windows Programming

C# Programming:From Problem Analysis to Program Design

4th Edition

C# Programming: From Problem Analysis to Program Design 10

Contrasting Windows and Console Applications

• Windows applications function differently from console applications.

• Windows applications look differently from console applications.

C# Programming: From Problem Analysis to Program Design 11

Contrasting Windows and Console Applications by Functionality

• Console applications– Each line in Main( ) executed sequentially – then the

program halts

• Windows applications– Once launched, sits and waits for an event– Sits in a process loop

• Event: notification from operating system that an action, such as the user clicking the mouse or pressing a key, has occurred – Write event-handler methods for Windows apps

C# Programming: From Problem Analysis to Program Design 12

Graphical User Interfaces

• Windows applications also look different from console applications

• Interface: front end of a program– Visual image you see when you run a program

• Graphical user interface (GUI) includes:– Menus

– Text in many different colors and sizes

– Other controls (pictures, buttons, etc.)

C# Programming: From Problem Analysis to Program Design 13

Windows Applications• Reference and import

System.Windows.Forms namespace • Class heading definition

– Includes not only the class name, but a colon followed by another class name

• Derived class (first class), Base class (second class)

•public class Form1 : Form • Derived classes inherit from base class • No multiple inheritance within .NET languages

C# Programming: From Problem Analysis to Program Design 14

Windows Applications (continued)• Text - property of the Form class

– A property for setting/getting title bar caption

– Can be used in constructor

• Windows forms/controls offer many properties including Text, Color, Font, and Location

• Execution begins in Main( ) method– Main( ) is located in Program.cs file for the application

– Call to Run( ) method places application in process loop

C# Programming: From Problem Analysis to Program Design 15

// Windows0.cs Author: Doyleusing System.Windows.Forms; // Line 1namespace Windows0{ public class Form1 : Form // Line 2 { public Form1( ) // Line 3 { Text = "Simple Windows Application"; // Line 4 } static void Main( ) { Form1 winForm = new Form1( ); // Line 5 Application.Run(winForm); // Line 6 } }}

New namespace referenced

Constructor

Base class

Sets title bar caption

Starts process

loop

C# Programming: From Problem Analysis to Program Design 16

Windows Application (continued)

Figure 9-1 Windows-based form

Output generated

from Windows0 application

C# Programming: From Problem Analysis to Program Design 17

Elements of Good Design

• Appearance matters – Human-computer interaction (HCI) research

• Design considerations– Consistency

– Alignment

– Avoid clutter

– Color

– Target audience

C# Programming: From Problem Analysis to Program Design 18

Use Visual Studio to Create Windows-Based Applications

Windows Forms

Application template

Browse to

location to store

your work

Name

Figure 9-2 Visual Studio New Windows application

Select File New

Project

C# Programming: From Problem Analysis to Program Design 19

Windows-Based Applications

Properties Window

Toolbox

Figure 9-3 Initial design screen

Design View

C# Programming: From Problem Analysis to Program Design 20

Windows-Based Applications (continued)

Figure 9-4 Dockable windows

Windows Based Applications

•Windows Forms–Properties–Events

C# Programming: From Problem Analysis to Program Design 22

Windows Forms• Extensive collection of Control classes • Top-level window for an application is called a Form • Each control has collection of properties and methods

– Select property from an alphabetized list (Properties window)

– Change property by clicking in the box and selecting or typing the new entry at design time.

• Each control has collection of events.

C# Programming: From Problem Analysis to Program Design 23

Windows Form Properties

Properties

Figure 9-5 Properties window

Property value

Windows Form Properties (change values at run time)

• Can set properties using program statements– Table 9-1 shows

properties set using Properties window

• Selecting Code on View menu shows associated code

C# Programming: From Problem Analysis to Program Design 24

Table 9-1 Form1 property changes

Windows Form Events

C# Programming: From Problem Analysis to Program Design 25

Figure 9-6 Form events

Inspecting the Code Generated by Visual Studio

• Three source code files ending with a .cs extension are part of the application

C# Programming: From Problem Analysis to Program Design 26

Figure 9-7 Solution Explorer window

Expand Form1.cs node to reveal the Form1.Designer.cs

file

C# Programming: From Problem Analysis to Program Design 27

Simple Windows Application

• IDE separates the source code into three separate files– Form1.cs: normally this is the only one you edit

– Form1.Designer.cs: holds the auto generated code

– Program.cs: contains the Main( ) method, where execution always begins

• Form1.cs and Form1.Designer.cs both include partial class definitions for the Form1 class

Inspecting the Code - Form1.cs

• Number of namespaces automatically added, including System.Windows.Forms

• Constructor calls InitializeComponent( ) methodpublic Form1( )

{

// Required for Windows Form Designer support.

InitializeComponent( );

}

• This is the file where event handler methods will be placed

C# Programming: From Problem Analysis to Program Design 28

Inspecting the Code - Form1.Designer.cs

• InitializeComponent( ) method included here• #region Windows Form Designer generated code

preprocessor directive– // do not modify the contents of this method with the

Code Editor

– Keyword “this.” precedes property name• Refers to current instance of the class

– #endregion // Ends the preprocessor directive

C# Programming: From Problem Analysis to Program Design 29

InitializeComponent( ) Method

BackColor = Color.FromArgb (((Byte)(255)),

((Byte)(224)), ((Byte)(192)));

ClientSize = new Size(392, 373);

Font = new Font("Arial", 12F, FontStyle.Bold,

GraphicsUnit.Point, ((Byte)(0)));

ForeColor = Color.Blue;

Location = new Point(30, 30);

Margin = new Padding(4);

MaximizeBox = false;

Name = "Form1";

StartPosition = FormStartPosition.CenterScreen;

Text = "First Windows Application";

• Some of the auto generated code in the method– Added as

default values for properties or from changing property values

C# Programming: From Problem Analysis to Program Design 30

Windows Based Applications

•Events

C# Programming: From Problem Analysis to Program Design 32

Windows Form Events

• Add code to respond to events, like button clicks

– Code goes into Form1.cs file

• From the Properties window, select the lightning bolt (Events)

– Double-click on the event name to generate code

• Registers the event as being of interest

• Adds a heading for event-handler method

C# Programming: From Problem Analysis to Program Design 33

Windows Form Properties (continued)

Events button

selected

Figure 9-6 Form1 events

C# Programming: From Problem Analysis to Program Design 34

Windows Form – Load Event• Code automatically added to register event

• Code automatically added for method heading private void Form1_Load(object sender, EventArgs e)

{

}

• You add statement to event-handler method body this.BackColor = Color.Azure;

C# Programming: From Problem Analysis to Program Design 35

Windows Form – FormClosing Event

• Code automatically added to register event

• Code automatically added for method headingprivate void Form1_FormClosing(object sender,

FormClosingEventArgs e)

{

}

• You add statement to event-handler method bodyMessageBox.Show("Hope you are having fun!");

Running the Windows Application

• No changes needed in the file that has Main( )

• Run like you do console applications (F5 or Ctrl+F5)

C# Programming: From Problem Analysis to Program Design 36

Figure 9-8 Output produced when the Close button causes the event-handler method to fire

Review FirstWindows Example

Windows Based Applications

•Controls

C# Programming: From Problem Analysis to Program Design 38

Controls • Controls are all classes

– Button, Label, TextBox, ComboBox, MainMenu, ListBox, CheckBox, RadioButton, and MonthCalendar

• Each comes with its own predefined properties and methods

• Each fires events

• Each is derived from the System.Windows.Forms.Control class

C# Programming: From Problem Analysis to Program Design 39

Controls (continued)

Dots indicate

other classes

are derived from the

class

Figure 9-9 Control class hierarchy

C# Programming: From Problem Analysis to Program Design 40

Standard Controls

Figure 9-10 Windows Forms controls

C# Programming: From Problem Analysis to Program Design 41

Controls (continued)• Two procedures to place controls

– From Toolbox, double-click on control or drag and drop

• Move, resize, and delete controls

• Format controls

– Align controls

– Make same size

– Horizontal and vertical spacing

C# Programming: From Problem Analysis to Program Design 42

Properties of the Control class

Table 9-2 Systems.Windows.Forms.Control class properties

Properties of the Control class (continued)

C# Programming: From Problem Analysis to Program Design 43

Table 9-2 Systems.Windows.Forms.Control properties (continued)

Methods of the Control class

• Control class has over 75 properties and over 100 methods– Not all are useful for every class that derives from it

C# Programming: From Problem Analysis to Program Design 44

Table 9-3 Systems.Windows.Forms.Control methods

Table 9-3 includes a short list of some

of the many methods.

Explore MSDN documentation

for more

C# Programming: From Problem Analysis to Program Design 45

Controls (continued)

Figure 9-11 GUI controls

Practical Tasks

• Write a Windows based application – pure empty form with no any user added forms, controls or events

Practical Tasks

• Write a Windows based application – pure empty form with modified Text property at design time using Properties window

Practical Tasks• Write a Windows based application – pure

empty form with two event handlers:

• Event Load – when the form gets loaded– To modify Text property and BackColor

property at run time

• Event FormClosing – when the form gets closed – prior to app termination– Call Message.Show() method

Thank You For

Your Attention