Lab2-Programming

eyelashesnectarineΛογισμικό & κατασκευή λογ/κού

3 Νοε 2013 (πριν από 3 χρόνια και 9 μήνες)

76 εμφανίσεις

PROGRAMMING
REVIEW

Lab 2

EECS 448

Dr

Fengjun

Li and
Meenakshi

Mishra

Software Development


Science or Art?


Science


Parts of it have fixed objective which must be met


Building new technology to help mankind


Art


Most clients just give a rough idea what they want


The final product is result of programmer’s imaginations


The more you practice, the better you get at it


There are basic techniques that can be taught; other than that you are
on your own


Task for Today


Build a java application for a basic calculator


The user selects the basic operations from drop
-
down menu


The options should be addition, subtraction, multiplication,
devision


The user enters the numbers in two text fields provided


The result appears in third text field




A tip that always helps


Approach the problem in small steps


Breaking the problem down in steps helps debugging


For example in this case


First write an application just to launch the application window


Change your program to include the
textfields

and labels


Write a code to just do addition


Plug in the drop
-
down menu and adjust the program accordingly

Working with swing


A package written for developing sophisticated GUI


Adopts style of the operating system or style unique to Java


Each style is called look and feel


Java 7 introduces new look and feel called Nimbus, that is unique to
Java


Must avail the swing package first


import
javax.swing
.*;


Other packages supporting GUI programming


java.awt

(Abstract Windowing Toolkit)


java.awt.event

(class handling user input)


Swing generally more powerful than
awt


Not implemented by platform specific code, but written entirely in java


Supplies plenty of exciting additions like scroll panes, trees, tables
etc


When using Swing component, you work with object of that Swing
class


All Swing components are subclasses of abstract class
JComponent


Creating Interface


Create a class that represents the main GUI


In most projects, main interface is a frame (
JFrame

class)


Frame is a window that appears whenever you open an application


Frame has a title bar, Maximize, Minimize, Close buttons and other features


Users of graphical environments expect to move, resize and close the windows


To create a graphical Java application, make the interface a subclass of
JFrame


public class
MyFirstGui

extends
Jframe


Set title by either
setTitle
(String)

or
super(String)

in the constructor


Set size by
setSize
(
int
,
int
)
where first number denotes width and
second height in pixels


Make your frame visible by
setVisible
(true);


Set default close operation to exit on closing
setDefaultCloseOption
(EXIT_ON_CLOSE)


Other close options


DISPOSE_ON_CLOSE


HIDE_ON_CLOSE


DO_NOTHING_ON CLOSE

Adding Components


Class
JButton



Three constructors


JButton
(String)



Label on the button


JButton
(Icon)



Icon on the button


JButton
(
String,Icon
)



Both icon and Label on the button


JButton

b = new
JButton
(“OK”);


Class
JPanel



After creating components, need to add them to a container


Simplest container


JPanel

p = new
JPanel
();


p.add
(b); //add button b to panel p


Adding Components


Class
JTextField


JTextField
()



Empty Text field


JTextField
(
int
)


Text Field with specified width


JTextField
(String,
int
)


Text Field with specified width and
text


setEditable
(False)

for text fields that do not accept user input


Class
JLabel


Three Constructors


JLabel
(String)



Label with specified text


JLabel
(String,
int
)


Label with specified text and alignment


SwingConstants.LEFT


SwingConstants.RIGHT


SwingConstants.CENTER


JLabel
(String, Icon,
int
)



Label with specified text, icon and
alignment

Adding Components


Class
JComboBox


Creates a list of items that are hidden when menu is not being used


addItem
(Object)



Add item to the list


getItemAt
(
int
)



Returns the text of the list item at specified
index position


getSelectedIndex
()



Returns the index position of selected
item


getSelectedItem
()



Returns the text of currently selected item


setSelectedIndex
(
int
)



Selects the item at indicated index
position


setSelectedIndex
(object)



Selects specified object in the list

Responding to User Inputs


Use
java.awt.event

package


Useful listener interfaces


ActionListener



When user performs an action on a component.


AdjustmentListener



When component is adjusted


FocusListener



Textfield

or area loses or gains focus


ItemListener



When items in items such as combo box are
changed


KeyListener



When user enters text using keyboard


MouseListener



Generated by mouse clicks, mouse entering or
leaving a component area


MouseMotionListener



track all movement by mouse over
component


WindowListener



When window is minimized, maximized, moved or
closes


Implement listener in class definition


public class t extends
JFrame

implements
ActionListener
,
ItemListener

{ //…}

Setting up Components


Need to add the attribute of listening to specific objects


addActionListener
()


JButton
,
JCheckBox
,
JComboBox
,
JTextField
,
JRadioButton

and
JMenuItem


addFocusListener
()


all Swing Component


addItemListener
()


JButton
,
JCheckBox
,
JComboBox

and
JRadioButton


addKeyListener
()


all Swing Components


addMouseListener
()


all Swing Components


addMouseMotionListener
()



all Swing Components


addTextListener
()



JTextField

and
JTextArea


addWindowListener
()


JWindow

and
JFrame



JButton

b = new
JButton
(‘OK”);


b.addActionListener
();


Event Handling Methods


Action Events


ActionListener



actionPerformed
(
ActionEvent
)


Focus Events


FocustListener



focusGained
(
FocusEvent
)

and
focusLost
(
FocusEvent
)


Item Events


ItemListener



itemStateChanged
(
ItemEvent
)


When a class implements an event interface, must define the
corresponding event handling methods


public void
actionPerformed
(
ActionEvent

e) { //..}


To know which for which object the event was generated


Object source=
e.getSource
();



If the event was triggered by button b, you can check using


if (source==b) { //..}

Summary of
designing application


Import packages


Create a Class that extends
JFrame

and implements all
the user interfaces required


Make sure to set the frame to visible, set title, declare size, the
application exits on closing


Create the components


Add property of user input listening to the components


Add the components to a simple container (optional)


Add the container to the Frame


Define what to do when the user enters required input


Define event handling methods