Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12818
  • 博文数量: 8
  • 博客积分: 275
  • 博客等级: 二等列兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-22 16:27
文章分类
文章存档

2011年(3)

2009年(5)

我的朋友
最近访客

分类: Java

2009-08-09 12:27:54

7.1 Swing概述
 AWT:Abstract Windows Toolkit,基本AWT库采用将处理用户界面元素的任务委派给每个目标平台的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面元素的创建和动作。
 Swing:Sun与Netscape合作创建的用户界面库。“如果没有Swing,Java图形界面就没有任何意义”。现在,Swing已是Java基础类库(JFC)的一部分。
7.2 创建框架
                -----------
                |  Object |
                -----------
                     ^
                     |
                -----------
                | Componet|
                -----------
                     ^
                     |
                -----------
                |Container|
                -----------
                     ^
           +---------|---------+
           |                   |
    -------------         -------------
    | JComponent|         |  Windows  |
    -------------         -------------
          ^                     ^
          |                     |
    -------------         -------------
    |  JPanel   |         |   Frame   |
    -------------         -------------
                                ^
                                |
                          -------------
                          |   JFrame  |
                          -------------
    在Java中,顶层窗口被称为框架(frame)。在AWT库中有一个称为Frame的类,用于描述顶层窗口。这个类的Swing版本名为JFrame,它扩展与Frame类。
7.3 框架定位
7.4 在面板中显示信息
    在Java中,所有的绘图都必须通过Graphics对象,其中包含绘制图案,图像和文本的方法。
    不管何种原因,只要窗口需要重新会谈,时间处理器就会通告组件,从而引发执行所有组件的paintComponent方法。
    一定不要自己调用paintComponent方法。在应用程序需要重新绘图的时候,这个方法将被自动地调用,不要认为地干扰这个自动的处理过程。如果需要强制刷新屏幕,就需要调用repaint方法,而不是paintComponent方法。它将引发采用相应配置的Graphics对象调用所有组建的paintComponent方法。
7.5 2D图形
    要想使用Java 2D库绘制图形,需要获得一个Graphics2D类对象。这个类是Graphics类的子类。如果使用的是一个支持Java 2D的JDK版本,paintComponent方法就会自动地获得一个Graphics2D类对象,我们只需进行一次类型转换即可。
    要想绘制图形,首先要创建一个实现了Shape接口的类的对象,然后调用Graphics2D类中的draw方法。例如:
    Rectangle2D rect = ...;
    g2.draw(rect);
    下面给出了图形类之间的关系。
   
-----------                         -----------
| Point2D |         --------------->|  Shape  |
-----------         |               -----------
     ^              |                    ^
     |              |                    |
-----------    -----------          -------------
| Point   |    |  Line2D |          |Rectangular|
-----------    -----------          |   Shape   |
                                    -------------
                                         ^
                                         |
                                ---------------------
                                |                   |
                           -----------         -------------
                           | Elipse2D|         |Rectangle2D|
                           -----------         -------------
                                                    ^
                                                    |
                                               -------------
                                               | Rectangle |
                                               -------------
7.6 颜色
    使用Graphics2D类的setPaint方法可以为图形环境上的所有后续的会址操作选择颜色。要想绘制多种颜色,就需要按照选择颜色,绘制图形,再选择颜色,再绘制图形的过程实施。
    如果使用Graphics类,则需要使用setColor()方法设置颜色。
    要想设置背景颜色,就需要使用Component类中的setBackground方法。Component类是JPanel类的祖先。另外还有setForeground方法,它是用来设定在组建上进行绘制时使用的默认颜色。
    Java在SystemColor类中预订一乐很多颜色的名字。在这个类中的常量,封装了用户系统的各个元素的颜色。下面列出系统颜色的名字和它们的含义:
    -----------------------------------------------------------------
    desktop                     桌面的背景颜色
    activeCaption               标题的背景颜色
    activeCaptionText           标题的文本颜色
    activeCaptionBorder         标题文本的边框颜色
    inactiveCaption             ...
    inactiveCaptionText
    inactiveCaptionBorder
    windows
    windowsBorder
    windowsText
    menu
    menuText
    text
    textText
    textInactiveText
    textHighlight
    textHighlightText
    control
    conrolText
    controlLtHighlight
    controlHighlight
    controlShadow
    controlDkShadow
    scrollbar
    info
    infoText
    -----------------------------------------------------------------
   
7.7 为文本设定特殊字体
    要想知道某台特定计算机上所允许使用的字体,就需要调用GraphicsEnvironment类中的getAvailableFontFamilyNames方法。这个方法返回一个字符型数组,其中包含了所有可用的字体名。GraphicsEnvironment类描述了用户系统的图形环境,为了得到这个类的对象,需要调用静态的getLocalGraphicsEnvironment方法。
 
阅读(362) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~