AWT图形用户界面设计之一(FramePanel)

news/2024/7/8 5:44:38 标签: 图形, 图形和图像工具, java, applet, 工具, import
 
AWT图形用户界面设计之一(Frame&Panel)

1 用AWT生成图形化用户界面

 
抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。它支持图形用户界面编程的功能包括: 用户界面组件;事件处理模型;图形和图像工具,包括形状、颜色和字体类;布局管理器,可以进行灵活的窗口布局而与特定窗口的尺寸和屏幕分辨率无关;数据传送类,可以通过本地平台的剪贴板来进行剪切和粘贴。

1.1 java.awt包
 
  java.awt包中提供了GUI设计所使用的类和接口,可从下图中看到主要类之间的关系。


  java.awt包提供了基本的java程序的GUI设计工具。主要包括下述三个概念:

  组件--Component
  容器--Container
  布局管理器--LayoutManager

1.2 组件和容器

  Java的图形用户界面的最基本组成部分是组件(Component),组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮,一个标签等。组件不能独立地显示出来,必须将组件放在一定的容器中才可以显示出来。

  类java.awt.Component是许多组件类的父类,Component类中封装了组件通用的方法和属性,如图形的组件对象、大小、显示位置、前景色和背景色、边界、可见性等,因此许多组件类也就继承了Component类的成员方法和成员变量,相应的成员方法包括:

   getComponentAt(int x, int y)
   getFont()
   getForeground()
   getName()
   getSize()
   paint(Graphics g)
   repaint()
   update()
   setVisible(boolean b)
   setSize(Dimension d)
   setName(String name)等

  
  容器(Container)也是一个类,实际上是Component的子类,因此容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。

  布局管理器(LayoutManager):每个容器都有一个布局管理器,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器。

  为了使我们生成的图形用户界面具有良好的平台无关性,Java语言中,提供了布局管理器这个工具来管理组件在容器中的布局,而不使用直接设置组件位置和大小的方式。

  在程序中安排组件的位置和大小时,应该注意以下两点:
  1.容器中的布局管理器负责各个组件的大小和位置,因此用户无法在这种情况下设置组件的这些属性。如果试图使用Java 语言提供的setLocation(),setSize(),setBounds() 等方法,则都会被布局管理器覆盖。

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

1.3 常用容器

  容器java.awt.Container是Component的子类,一个容器可以容纳多个组件,并使它们成为一个整体。容器可以简化图形化界面的设计,以整体结构来布置界面。所有的容器都可以通过add()方法向容器中添加组件。
有三种类型的容器:Window、Panel、ScrollPane,常用的有Panel, Frame, Applet。
1.Frame

  
以下是容器的例子:
例1

 1  import  java.awt. * ;
 2  public   class  MyFrame  extends  Frame{
 3    public   static   void  main(String args[ ]){
 4    MyFrame fr  =   new  MyFrame( " Hello Out There! " ); // 构造方法
 5    fr.setSize( 200 , 200 ); // 设置Frame的大小,缺省为(0,0)
 6    fr.setBackground(Color.red); // 设置Frame的背景,缺省为红色
 7    fr.setVisible( true ); // 设置Frame为可见,缺省为不可见
 8   }
 9    public  MyFrame (String str){
10     super (str); // 调用父类的构造方法
11   }
12  }

运行结果如下:

2. Panel

  
例2
 1  import  java.awt. * ;
 2  public   class  FrameWithPanel  extends  Frame{
 3    public  FrameWithPanel(String str){
 4     super (str);
 5   }
 6    public   static   void  main(String args[]){
 7    FrameWithPanel fr  =   new  FrameWithPanel( " Frame with Panel " );
 8    Panel pan = new  Panel();
 9    fr.setSize( 200 , 200 );
10    fr.setBackground(Color.red); // 框架fr的背景颜色设置为红色
11    fr.setLayout( null ); // 取消布局管理器
12    pan.setSize( 100 , 100 );
13    pan.setBackground(Color.yellow); // 设置面板pan的背景颜色为黄色
14    fr.add(pan); // 用add方法把面板pan添加到框架fr中
15    fr.setVisible( true );
16   }
17  }
运行结果如下:

http://www.niftyadmin.cn/n/1426261.html

相关文章

AWT图形用户界面设计之二(布局管理器1)

2. BorderLayout  BorderLayout 是Window,Frame和Dialog的缺省布局管理器。BorderLayout布局管理器把容器分成5个区域:North,South,East,West和Center,每个区域只能放置一个组件。各个区域的位置及大小如…

AWT图形用户界面设计(布局管理器2)

4. CardLayout CardLayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件,当然每层都可以利用Panel来实现复杂的用户界面。牌布…

Thread,sleep,Runnable,run,start;

public class myThread extends Thread {private String who;public myThread(String str){whostr; }public void run(){for(int i0;i<5;i){try{sleep(10);}catch(InterruptedException e){System.out.println(who"_正在运行");}System.out.println(who"幸…

awt 容器有布局,再add组件,线程,(举例:烟花)

awt 容器有布局&#xff0c;再add组件&#xff0c;线程&#xff0c;(举例&#xff1a;烟花) 组件&#xff1b; 容器(Container)也是一个类&#xff0c;实际上是Component的子类&#xff0c;因此容器本身也是一个组件&#xff0c;具有组件的所有性质&#xff0c;但是它的主要功能…

eclipse支持图形GUI,前提安装插件EMF,GEF,VE

eclipse支持图形GUI&#xff0c;前提安装插件EMF,GEF,VE 显示有java/visual editor,awt,swing,swt,RCp

ASP教程 Internet Information Server的缩写为(IIS)

学习目的&#xff1a;安装调试ASP的环境&#xff0c;并且调试第一个简单的程序。 因为我们学ASP的目的就是想建立一个网站&#xff0c;那么一般习惯是建立的网站内所有文件应该同时放到一个文件夹中(当然这个文件夹中还可以按需要设置子文件夹&#xff01;)&#xff0c;所以在这…

MYSQL的常用命令

在这篇文章中我们就从连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令。 一、连接MYSQL。 格式&#xff1a; mysql -h主机地址 -u用户名 &#xff0d;p用户密码 1、例1&#xff1a;连接到本机上的MYSQL。 首先在打开DOS窗口&#xff0c;然后进入目录 mysqlb…

导入sql文件到mysql中

导入sql文件到mysql中(root,911)  常用source 命令 进入mysql数据库控制台&#xff0c; 如mysql -u root -p mysql>use 数据库 然后使用source命令&#xff0c;后面参数为脚本文件(如这里用到的.sql) mysql>source d:wcnc_db.sql