您的位置:首页 > 产品设计 > UI/UE

java的GUI界面编程

2013-08-17 16:09 453 查看
.Java之GUI编程

1.AWT

(1).AWT(Abstract window Toolkit【抽象窗口开发包】它可以在各个系统下运行,他是跨平台操作的,开发出来的窗口程序在各个系统下表现都是一样的,但是没有体现出完全的跨平台,有可能在两个系统中比较,会发现两者之间的大小有区别)包括了很多类和接口,用于java  Application的GUI(Graphics User Interface图形用户界面)编程。

(2).GUI的各种(如:窗口,按钮,文本框等)由java类实现。

(3).使用AWT所涉及的类一般在java.awt包及子包中。

(4).Container和Component[可以显示出来并且能与用户进行交流的页面]是AWT中两个核心类。

(5).java中的新(窗口开发)扩展包Swing,现在大多数的java窗口应用程序是在新的扩展包Swing里面开发的,但是不是说有Swing就不要awt,其实有了新的扩展包还是要基于awt包的

2.Component和Container

1.java的图形用户界面的最基本组成部分是Component,Component类及其子类的对象用来描述以图形化的方式显示在屏幕上并能与用户进行交互的GUI元素,例如,一个按钮,一个标签。

2.一般的Component
对象不能独立的显示出来,必须将“放在”某一的Container对象中才可以显示出来。

3.Container是Component子类,Container子类对象可以“容纳”别的Component对象。

4.Container对象可使用方法add(…)向其中添加其他Component对象。Container是Component的子类,因此Container对象也可以当做Component对象添加到Container对象中

5.两种常用的Container;(1)Window:其对象表示自由停泊的顶级窗口(2)panel:其对象 可以作为容纳其他Component对象,但不能独立存在,必须被添加到其他Container中(如:Window或Applet);

6.窗口设置里面setSize(int int int int)里面的单位是相素

7.设置为可见:setVisible(true);设置为不可改变大小:setResizable();设置窗口出现的位置:setLocation(int value,int value);

 

3.Frame用法

1.frame是window的子类,由frame或其子类创建的对象为一个窗体。

2.Frame的常用构造方法。(1)frame() (2)frame(String s)创建标题栏为字符窜s的窗口。

4.Panel的用法

1.Panel对象可以看成可以容纳Component的空间

2.Panel对象可以拥有自己的布局管理器

3.Panel类拥有从其父类继承来的:

   setBounds(int x,int y,int width,int height)

   setSize(int width,int height)

   setLocation(int x,int y);

   setBackground(Color c);

   setLayout(LayoutManager mgr)等方法

4.Panel的构造方法为:(1)Panel()使用默认的FlowLayout类的布局管理器初始化。(2)Panel(LayoutManager layout)使用指定的布局管理器初始化

5.布局管理

1.java语言中,提供了布局管理器类的对象可以管理。(1)管理Component在Container中布局,不必直接设置Component位置和大小。(2)每个Container都有一个布局管理对象,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器,调用Container的setLayout方法改变其布局管理器对象。

2.Awt提供了5中布局管理器:(1)FlowLayout流式布局(2)BorderLayout边界布局(3)GridLayou网格布局(4)CardLayout卡片布局(5)GridBagLayout

6 FlowLayout流式布局

1.FlowLayout是Panel类默认的布局管理器:其中FlowLayout布局管理器对组件逐行定位,行内从左到右,一行排满后换行。不改变组件的大小,按组件原有尺寸显示组件,可设置不同的组件间距,行距以及对齐方式。

2.FlowLayout布局管理器默认的对齐方式是居中

7.FlowLayout的构造方法

1.new FlowLayout(FlowLayout.RIGHT,20,40);右对齐,组件之间水平间距20个像素,垂直间距40像素

2.new FlowLayout(FlowLayout.LEFT);左对齐,水平和垂直间距为缺省值(5)

3.new FlowLayput();使用缺省的居中对齐方式,水平和垂直间距为缺省值(5)。

8.BorderLayout边界管理器

1.BorderLayout是Frame类的默认布局管理器

2.BorderLayout将整个容器的布局划分成:东(EAST),西(WEST),南(SOUTH),北(NORTH),中(CENTER)五个区域,组件只能被添加到指定的区域。

3.如不指定组件的加入部位,则默认加入到CENTER区

4.每一个区域只能加入一个组件,如加入多个,则先前加入的会被覆盖。

5.BorderLayout型布局容器尺寸缩放原则:北,南两个区域在水平两个方向缩放。东西两个区域在垂直方向缩放。中部可以在两个方向上缩放。

9.GridLayout布局管理器(网格)

1.GridLayout型布局管理器将空间划分成规则的矩形网格,每个单元格区域大小相等。组件被添加到每个单元格中,先从左到右填满一行后换行,在从上到下。

2.在GridLayout构造方法中指定分割的行数和列数:GridLayout(3,4);

10.布局管理器总结

1.Frame是一个顶级窗口,Frame的缺省布局管理器为BorderLayout

2.Panel无法单独显示,必须添加到某个容器中,Panel的缺省布局管理器为FlowLayout

3,当把Panel作为一个组件添加到某个容器中后,该Panel任然可以有自己的布局管理器

3.使用布局管理器时,布局管理器负责各个组件的大小和位置,因此用户无法在这种情况下设置组件大小和位置属性,如果试图使用java语言提供的setLocation(),setSIze(),setBounds()等方法,则都会被布局管理器覆盖。

4.如果用户确实需要亲自设置组件大小或则位置,则应取消该容器的布局管理器,方法为:setLayout(null).

11.事件模型

1.事件监听:事件源对象—->(当某种事情发生)(向监听器传送某种事件对象(一些封装了某种事件的 信息))————>(接到事件对象后进行某种处理)实现了某种监听器接口的类的对象————>(注册)回到事件源对象

2.TextField 类:其中java.awt.TextField类用来创建文本框对象。有这么些方法:

  (1)JTextField():构造一个新的文本框。

  (2)JTextField(int columns):构造一个具有指定列数的新的空文本框

  (3)JTextField(String text):构造一个指定的文本初始化的新文本框

  (4)JTextField(String text ,int columns):构造一个用指定文本和列初始化的新文本框。

3.其中我们在另一个类里面定义的对象,要在其他地方访问其源对象,那么我可以用getsource()方法,密码框里面setEchoChar(“*”);

12.j2se里面的持有对方的引用和匿名内部类

 1.匿名内部的好处在于:可以没有限制的访问包装类的成员变量;可以更清楚的组织逻辑,防止不应该被其他类访问的类进行访问。

2.何时使用:该类不允许或不需要其它类进行访问时

3.paint方法在每次需要被调用时才会被调用

13.Graphic类

1.每个Component都有一个Paint(Graphic g)用于实现绘图目的,每次重画该Component时都自动调用Paint方法

2.Graphics类中提供了许多绘图方法,如:drawRect(int x,int y,int width,int height);fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight).(如果要你实现某个类的接口就要重写它的全部方法,这种情况下就必须实现继承这个的接口的父类,这样就不需要重写那么多的方法)

3.Window事件:Window事件所对应的事件类为WIndowEvent,所对应的事件监听器接口为WindowListener;WindowListener定义的方法有:public void WindowOpenedEvent e….;   与windowListener对应的适配器为:WindowAdapter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 编程语言 界面 GUI