4.
下拉式菜单(Choice)
下拉式菜单每次只能选择其中的一项,它能够节省显示空间,适用于大量选项。
Choice Colorchooser=new Choice();
Colorchooser.add("Green");
Colorchooser.add("Red");
Colorchooser.add("Blue");
Choice 用ItemListener接口来进行监听
5. Canvas
一个应用程序必须继承Canvas类才能获得有用的功能,比如创建一个自定义组件。如果想在画布上完成一些图形处理,则Canvas类中的paint()方法必须被重写。
Canvas组件监听各种鼠标,键盘事件。当在Canvas组件中输入字符时,必须先调用requestFocus()方法。
例5.14
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class MyCanvas implements KeyListener, MouseListener {
Canvas c; //声明一个画布对象
String s ="";
public static void main(String args[]) {
Frame f=new Frame("Canvas");
MyCanvas mc=new MyCanvas();
mc.c=new Canvas();
f.add("Center",mc.c);
f.setSize(150,150);
mc.c.addMouseListener(mc); //注册监听器
mc.c.addKeyListener(mc); //注册监听器
f.setVisible(true);
}
public void mouseClicked(MouseEvent ev){
System.out.println("MouseClicked");
c.requestFocus();//获得焦点,表示该窗口将接收用户的键盘和鼠标输入
}
public void keyTyped(KeyEvent ev) {
System.out.println("KeyTyped");
s+=ev.getKeyChar(); //获取每个输入的字符,依次添加到字符串s中
c.getGraphics().drawString(s,0,20); //显示字符串s
}
public void keyPressed(KeyEvent ev) { System.out.println("KeyPressed");
}
public void keyReleased(KeyEvent ev) { System.out.println("KeyReleased");
}
public void mousePressed(MouseEvent ev) {System.out.println("MousePressed");
}
public void mouseReleased(MouseEvent ev) {System.out.println("MouseReleased");
}
public void mouseEntered(MouseEvent ev) {System.out.println("MouseEntered");
}
public void mouseExited(MouseEvent ev) {System.out.println("MouseExited");
}
}
6. 单行文本输入区(TextField)
只能显示一行,当回车键被按下时,会发生ActionEvent事件,可以通过ActionListener中的actionPerformed()方法对事件进行相应处理。可以使用setEditable(boolean)方法设置为只读属性。
单行文本输入区构造方法如下:
TextField tf1,tf2,tf3,tf4:
tf1=new TextField();
tf2=new TextField("",20); //显示区域为20列
tf3=new TextField("Hello!"); //按文本区域大小显示
tf4=new TextField("Hello!",30); //初始文本为Hello!,
显示区域为30列
|