GUI图形用户界面(二)

来源:互联网 发布:安知玉如意txt百度云 编辑:程序博客网 时间:2024/05/21 06:45



文本区域 TextArea

文本区域是一个可以显示多行文本的区域。与TextField一样继承自TextComponent

TextField t = new TextArea( String s, int rows, int columns )

文本区域不产生任何可由handleEvent方法或action方法处理的事件。要从文本区域获取文本,则需要一个外部事件来触发。


画板 Canvas

画板是一个可以画图和接收鼠标事件的组件。从component继承而来。

画板有其自己的图形环境,因此解决了applet上图形会被其他组件覆盖的问题。

Canvas c = new Canvas();

c.setSize( width, height );

一般是重写一个canvas类


滚动条 Scrollbar

在某个整数范围内滚动的组件。从component继承而来

Scrollbar s = new Scrollbar( int orientation, int initialvalue, int visibleArea, int minimumValue, int maximumValue )


定制组件

由程序员创建而非系统提供的组件

一般情况下,定制组件是通过扩展Canvas类或Panel类来创建的,当定制组件不需要Container类的方法时,就使用Canvas类的扩展类,而不是Panel类。

在定制组件中,应提供get和set的方法来访问私有数据


框架 Frame

框架是一个带有标题栏和边界的窗口,由Windows类的扩展类Frame创建。默认布局是BorderLayout。

创建:Frame f = new Frame( String s )   string 显示在标题栏

f.setVisible( boolean );  设置框架显示或隐藏

f.dispose 释放框架资源

f.setSize( width, height )  设置大小;  框架显示前必须设置大小


菜单 Menu


MenuItem类中包含一些用于管理菜单项的构造函数和方法。一个菜单项就是包含在菜单中的一个字符串,当选中时会执行一个动作。

MenuBar类中包含一些用于管理菜单栏的构造函数和方法。菜单栏是菜单的容器。

Menu类中包含一些用于管理菜单的构造函数和方法。菜单中包含若干菜单项,并将其添加到菜单栏中。

CheckboxMenuItem类中包含一些用于管理复选框菜单项的构造函数和方法。


Menu组件是放在Frame中的,具体创建步骤:

1. 创建一个菜单栏 MenuBar bar = new MenuBar();

2. 创建菜单 Menu m = new Menu( String name );

3. 在菜单中加入菜单项 m.add( String item );

4. 将菜单加到菜单栏中 bar.add( m );

5. 在frame中显示菜单栏 setMenuBar( bar );


对话框 Dialog

对话框是一个带有标题栏的无边界窗口,用于接收用户的信息或向用户显示信息。从window类继承而来。

对话框分为模态和非模态。模态对话框打开时,不允许访问其他窗口,非模态则可以继续访问其他窗口。

默认布局为BorderLayout

创建对话框

Dialog d = new Dialog( Frame f,  String name, boolean b ) 第一个参数是指定所有者Frame,第二个参数是标题, 第三个参数是选择是否为模态


两种高级布局管理器

CardLayout

将各个组件作为卡片而放到一个卡片盒里,只有最上面的卡片可见。每张卡片通常都是一个容器,可以调用函数将卡片中的任何一张移到最上面来。

CardLayout c = new CardLayout();

p.setLayout( c );

p.add( String name, Component t ) 第一个参数用于标识已添加的组件,第二个参数是要添加的卡片。

方法:c.first()   c.previous()     c.next()     c.last()  用于显示各张卡片


GridBagLayout

和GridLayout类似,不过更为灵活。

使用GridBagLayout布局管理器,必须创建一个GridBagConstraints对象。用于确定如何使用GridBagLayout来对组件进行布局。