初学Java之AAWT组件库

来源:互联网 发布:淘宝充值中心可靠吗 编辑:程序博客网 时间:2024/05/14 10:11

1. 按钮(Button)

  按钮是最常用的一个组件,其构造方法是:Button b = new Button("Quit")
  当按钮被点击后,会产生ActionEvent事件,需ActionListener接口进行监听和处理事件。
  ActionEvent的对象调用getActionCommand()方法可以得到按钮的标识名,缺省按钮名为label。
  用setActionCommand()可以为按钮设置组件标识符。

 2.复选框 (Checkbox)

  复选框提供简单的"on/off"开关,旁边显示文本标签。
  
  构造方法如下:
  setLayout(new GridLayout(3,1));
  add(new Checkbox("one",null,true));
  add(new Checkbox("two"));
  add(new Checkbox("three"));

  复选框用ItemListener 来监听ItemEvent事件,当复选框状态改变时用getStateChange()获取当前状态。使用getItem()获得被修改复选框的字符串对象。

   class Handler implements ItemListener {
     public void itemStateChanged(ItemEvent ev){
       String state = "deselected";
       if (ev.getStateChange() = = ItemEvent.SELECTED){
         state = "selected"
       } 
     System.out.println(ev.getItem()+" "+state);
     }
   }


 3.复选框组(CheckboxGroup)

  使用复选框组,可以实现单选框的功能。方法如下: 
  setLayout(new GridLayout(3, 1));
  CheckboxGroup cbg = new CheckboxGroup();
  add(new Checkbox("one", cbg, true));
  add(new Checkbox("two", cbg, false));
  add(new Checkbox("three", cbg, false))
;


   查看运行结果


 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()方法。

   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列

0 0
原创粉丝点击