java组件菜单被文本区挡住_java--AWT组件库

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()获得被修改复选框的字符串对象。

例5.13

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

例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列

7. 文本输入区(TextArea)TextArea可以显示多行多列的文本。使用setEditable(boolean)方法,可以将其设置为只读的。在TextArea中可以显示水平或垂直的滚动条。

要判断文本是否输入完毕,可以在TextArea旁边设置一个按钮,通过按钮点击产生的ActionEvent对输入的文本进行处理。

8. 列表(List)

列表中提供了多个文本选项,列表支持滚动条,可以浏览多项

List lst=new List(4,false); //两个参数分别表示显示的行数、是否允许多选

lst.add("Venus");

lst.add("Earth");

lst.add("JavaSoft");

lst.add("Mars");

cnt.add(lst);

9. 框架(Frame)

Frame是顶级窗口,可以显示标题,重置大小。当Frame被关闭,将产生WindowEvent事件,Frame无法直接监听键盘输入事件。

10. 对话框(Dialog)

它是Window类的子类。对话框和一般窗口的区别在于它依赖于其它窗口。对话框分为非模式(non-modal)和模式(modal)两种。

11. 文件对话框(Filedialog)

当用户想打开或存储文件时,使用文件对话框进行操作。主要代码如下:

FileDialog d=new FileDialog(ParentFr,"FileDialog");

d.setVisible(true);

String filename=d.getFile();

12. 菜单(Menu)

无法直接将菜单添加到容器的某一位置,也无法使用布局管理器对其加以控制。菜单只能被添加�"菜单容器"(MenuBar)中。

13. MenuBar

只能被添加到Frame对象中,作为整个菜单树的根基。

Frame fr = new Frame("MenuBar");

MenuBar mb = new MenuBar();

fr.setMenuBar(mb);

fr.setSize(150,100);

fr.setVisible(true);

14. Menu下拉菜单。它可以被添加到MenuBar中或其它Menu中。

Frame fr = new Frame("MenuBar");

MenuBar mb = new MenuBar();

fr.setMenuBar(mb);

Menu m1 = new Menu("File");

Menu m2 = new Menu("Edit");

Menu m3 = new Menu("Help");

mb.add(m1);

mb.add(m2);

mb.setHelpMenu(m3);

fr.setSize(200,200);

fr.setVisible(true);

15. MenuItemMenuItem是菜单树中的"叶子节点"。MenuItem通常被添加到一个Menu中。对于MenuItem对象可以添加ActionListener,使其能够完成相应的操作。

Menu m1 = new Menu("File");

MenuItem mi1 = new MenuItem("Save");

MenuItem mi2 = new MenuItem("Load");

MenuItem mi3 = new MenuItem("Quit");

m1.add(mi1);

m1.add(mi2);

m1.addSeparator();

m1.add(mi3);

MenuBar和Menu都没有必要注册监听器,只需要对MenuItem添加监听器ActionListener,完成相应操作。16. 组件与监听器的对应关系下表中列出了各个组件与所有的监听器的对应关系,打上"

0818b9ca8b590ca3270a3433284dd417.png"表明该组件可以注册此种监听器。

表5.2

监听器接口

Act

Adj

Cmp

Cnt

Foc

Itm

Key

Mou

MM

Text

Win

Button

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Canvas

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Checkbox

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

CheckboxMenuItem

0818b9ca8b590ca3270a3433284dd417.png

Choice

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Component

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Container

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Dialog

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Frame

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Label

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

List

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

MenuItem

0818b9ca8b590ca3270a3433284dd417.png

Panel

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Scrollbar

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

ScrollPane

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

TextArea

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

TextField

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Window

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Act=ActionListener Adj=AdjustmentListener Cmp=ComponentListener   Cnt=ConatainerListener Foc=FocusListener Itm=ItemListener   Key=KeyListener Mou=MouseListener MM=MouseMotionListener   Text=TextListener Win=WindowListener

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值