OOP Lec15 (Windows Forms)

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 21

Object Oriented Paradigm

Lecture # 15
Outline
 More AWT Controls
 Choice Control
 Textfield

2
Choice Controls
 The Choice class is used to create a pop-up list
of items from which the user may choose
 Each item in the list is a String that appears as
a left-justified label in the order it is added to
the Choice object
 Choice only defines the default constructor,
which creates an empty list
3
Choice Controls
 To add a selection to the list, call addItem() or add()
– void addItem(String name)
– void add(String name)
 To determine which item is currently selected, we may
call either getSelectedItem() or getSelectedIndex()
– String getSelectedItem()
– int getSelectedIndex()
 The first item is at index 0
 By default, the first item added to the list is selected
4
Choice Controls
 To obtain the number of items in the list, call
getItemCount()
– int getItemCount()
 We can set the currently selected item using the select()
method with a zero-based integer index or a string that
will match a name in the list
– void select(int index)
– void select(String name)
 Given an index, we can obtain the name associated with
the item at that index by calling getItem(), which has
the general form:
– String getItem(int index)
5
Choice Controls
 Each time a choice is selected, an item event is
generated
 Each listener implements the ItemListener
interface
 That interface defines the
itemStateChanged() method
 An ItemEvent object is supplied as the
argument to this method
6
Choice Controls
// Demonstrate Choice List
import java.awt.*;
import java.awt.event.*;
class MyChoiceList extends Frame implements ItemListener {
Panel panel;
Label label;
String msg="";
Choice os, browser;
MyChoiceList() {
addWindowListener(new MyWindowAdapter());
label = new Label();
os = new Choice();
browser = new Choice();
panel = new Panel();
7
Choice Controls
// add items to os list
os.add("Windows 98");
os.add("Windows NT/2000");
os.add("Solaris");
os.add("MacOS");
// add items to browser list
browser.add("Netscape 1.1");
browser.add("Netscape 2.x");
browser.add("Netscape 3.x");
browser.add("Netscape 4.x");
browser.add("Internet Explorer 3.0");
browser.add("Internet Explorer 4.0");
browser.add("Internet Explorer 5.0");
browser.add("Lynx 2.4");
8
Choice Controls
browser.select("Netscape 4.x");
os.addItemListener(this);
browser.addItemListener(this);
panel.add(os);
panel.add(browser);
panel.add(label);
add(panel);
}
public void itemStateChanged(ItemEvent ie)
{
repaint();
}

9
Choice Controls
public void paint(Graphics g)
{
msg = "Current OS: ";
msg += os.getSelectedItem();
msg += "Current Browser: ";
msg += browser.getSelectedItem();
label.setText(msg);
}
}

10
Choice Controls
public class MyChoiceListDemo {
public static void main(String args[]) {
MyChoiceList win=new MyChoiceList();
win.setSize(380,120);
win.setTitle("Choice List");
win.setVisible(true);
}
}
class MyWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
}
11
Using a TextField
 The TextField class implements a single-line text-
entry area
 Text fields allow the user to enter strings and to edit the
text using the arrow keys, cut and paste keys, and
mouse selections
 TextField is a subclass of TextComponent
 TextField defines the following constructors:
– TextField()
– TextField(int numChars)
– TextField(String str)
– TextField(String str, int numChars)
12
Using a TextField
 TextField (and its superclass TextComponent)
provides several methods that allow us to utilize a text
field
 To obtain the string currently contained in the text field,
call
– String getText()
 To set the text, call
– void setText(String str)

13
Using a TextField
 The user can select a portion of the text in a text field
 We can also select a portion of text under program
control by using
– void select(int startIndex, int endIndex)
 The select() method selects the characters beginning at
startIndex and ending at endIndex-1
 Program can obtain the currently selected text by calling
– String getSelectedText()
14
Using a TextField
 There may be times when we will want the user to enter
text that is not displayed, such as a password
 We can disable the echoing of the characters as they are
typed by calling
– void setEchoChar(char ch)
 This method specifies a single character that the
TextField will display when characters are entered (thus,
the actual characters typed will not be shown)

15
Using a TextField
 Program generally will not respond to individual
key events that occur within a text field
 However, we may want to respond when the
user presses Enter key
 When this occurs, an action event is generated

16
Using a TextField
// Demonstrate TextField
import java.awt.*;
import java.awt.event.*;
class MyTextField extends Frame implements ActionListener {
Panel panel;
Label label, nlabel, plabel;
String msg="";
TextField name, pass;
MyTextField()
{
addWindowListener(new MyWindowAdapter());
label = new Label();
nlabel = new Label("Name: ",Label.RIGHT);
plabel = new Label("Password: ",Label.RIGHT);

17
Using a TextField
name = new TextField(12);
pass = new TextField(8);
pass.setEchoChar('*');
panel = new Panel();
name.addActionListener(this);
pass.addActionListener(this);
panel.add(nlabel);
panel.add(name);
panel.add(plabel);
panel.add(pass);
panel.add(label);
add(panel);
}

18
Using a TextField
public void actionPerformed(ActionEvent ae)
{
repaint();
}
public void paint(Graphics g)
{
msg = "Name: " + name.getText();
msg += "Selected Text in name: " + name.getSelectedText();
msg += "Password: " + pass.getText();
label.setText(msg);
}
}

19
Using a TextField
public class MyTextFieldDemo {
public static void main(String args[]) {
MyTextField win=new MyTextField();
win.setSize(380,120);
win.setTitle("TextField");
win.setVisible(true);
}
}
class MyWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
}

20
Recommended Reading
 Chapter # 24: Using AWT Controls, Layout
Managers, and Menus from Herbert Schildt,
Java: The Complete Reference, J2SETM 5 Edition

21

You might also like