黑马程序员_关于java GUI的学习

来源:互联网 发布:什么是风险软件 编辑:程序博客网 时间:2024/05/14 09:53

---------------------- android培训java培训、期待与您交流! ---------------------

看完传智播客老师关于GUI的学习的一些总结:

创建图形化界面的一般步骤 

 1 创建frame窗面

 2 对窗体进行设置。

 3 定义组建

4 将组建通过窗体add方法添加到窗体中。、

5 让窗体显示通过setvisible(true)

 

事件监听的特点

 1 事件源

 2事件

 3监听

4事件处理。

 

事件源      就是awt或者swing 包中的那些图形界面的组建

事件  每个事件都有自己特有的对应事件和共性事件。

监听器 将可以触发某一事件的动作(不只一个动作)都已近封装到了监听器中。

按钮就是事件源,那么选择监听器是一个问题,通过关不窗体事件了解,想要知道那个组建对象的功能,通过查阅button描述,发现该按钮持有特有的监听器。

 

 

 

 下面是网上查阅的一些关于GUI的质料,和大家一起学习,分享:

JAVA中构成图形用户界面的元素称为组件(Component),Java程序要显示的GUI也是java.awt.Component或java.awt.MenuComponent的子类.组件分为容器类(Container)和非容器类,容器本身也是组件,也可以包括其它组件,非容器类种类较多,如Button,Label,TextComponent等~

窗口又分为顶层的和非顶层的两大类,顶层可以是独立的窗口,顶层容器的类是Window,它的重要的子类是Frame和   Dialog类.非顶层容器类包括Panel 及ScrollPane等.Panel的重要子类是Applet.其中Panel和Applet者是无边框的;        ScrollPanel一组是可以自动处理流动操作的容器;Window,Frame,Dialog和FileDialog是一组大都含有边框的,并可以移动,放大,缩小,关闭的功能较强的容器.

现用实例说明一下Container的两个重要的子类:Frame和Panel:

import java.awt.*;

public class TestFrame {
 public static void main(String args[]){
  Frame f = new Frame("heheh");//窗口的名称
  f.setSize(170,100);//窗口的大小
  f.setBackground(Color.black);//窗口的背景着色
  f.setVisible(true);//设置窗口为可见
 }
}

//////////////////////////////////////////////////////////////////////////////////////////////////////

import java.awt.*;

public class TestFrameWithPanel {
 public static void main(String args[]){
  Frame f = new Frame("heheheheh");
  f.setSize(500,400);
  f.setLocation(300,200);//设置将要显示的位置
  f.setBackground(Color.blue);
  
  Panel p = new Panel();
  p.setSize(150,100);
  p.setLocation(130, 50);
  p.setBackground(Color.cyan);
  
  Button b = new Button("OK");
  b.setSize(80,20);
  b.setLocation(80,50);
  b.setBackground(Color.black);
  
  f.setLayout(null);//不使用布局管理器
  p.setLayout(null);
  p.add(b);//填加到Frame上
  f.add(p);
  f.setVisible(true);
 }
}

 

 

Swing类库和AWT(Abstract Windows Toolkit)可以用来编写视窗界面,AWT较为古老,Swing往AWT中添加了一些内容,生成了一个更丰富的集合

 

在事件编程中,要创建可以激发事件的对象,还要创建对对象进行响应的侦听器对象,你要编写一个自己永远也不会在任何程序中调用的方法定义

运行一个事件驱动程序时,接发生的事情取决于下一个事件

 

负责侦听窗口事件的侦听器被称为窗口侦听器,将侦听器与所侦听的对象进行关联的动作被称为注册侦听器

 

任何窗口侦听器通常都是WindowAdapter类的派生类

 

包含一条额外的import语句造成的效率损失是很少的,因此,不需要费力去使得import语句数量保持为最少

 

布局管理器管理添加到一个容器类中去的对象的排列方式

FlowLayoutBorderLayout GridLayout

 

AWT并没有被Swing取代,而AWT中已经有命名为Frame\Label\Button的类了,所以在Swing中,相应的类被命名为JFrame\JLabel\JButton

 

按钮激发的是动作事件,这些事件由动作侦听器来处理

不同类型的组件需要不同类型的侦听器来处理他们激发的事件

动作侦听器是一个ActionListener类型的对象,ActionListener不是一个类,而是接口

 

接口不是一个类,但它是一种类型,一个方法可以有一个ActionListener类型的参数,任意一个实现了ActionListener接口的类都可以作为那个方法的实参

 

对于一个复杂的Swing GUI,一般将外观与动作分开编程

 

JPanel对象可以将一些较小的对象,比如按钮和标签,组织成一个较大的组件,然后,通常会将JPanel对象添加到JFrame的内容面板中取。因此,JPanel对象的主要功能之一就是将JFrame分割成一些不同的区域

 

JFrame和JPanel类都是Container类的子孙,所以这两个类的子孙类都是容器类,可以向每个容器类中添加标签、按钮、面板等东西

 

可以向JTextField或JTextField输入比指定尺寸更多的文本,但多余的文本是不可见的

 

在一个Swing程序中,抛出一个未被捕获的异常并不会终止GUI,但会将GUI置于一种不可预测的状态

 

Java不要求在throws子句中声明RuntimeException类及其子孙类,但仍然可以捕获它们。NumberFormatException是RuntimeException类的子孙类

运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见的运行错误。Java编译器要求方法必须声明跑出可能发生的非运行时异常,但是并不要求必要声明跑出位被捕获的运行时异常。

 

 

 

 

 

 

 

----------------------- android培训java培训、期待与您交流! ----------------------