学堂在线—Java程序设计—课程笔记(第7章 图形用户界面)

本文详细介绍了Java的图形用户界面(GUI)编程,重点讲解了Swing框架的基础知识,包括图形环境和图形对象、Swing组件的层次结构、布局管理、事件处理机制。Swing作为Java Foundation Classes的一部分,提供了丰富且轻量级的组件,可以创建出具有高级功能的用户界面。文章还讨论了如何使用布局管理器进行界面设计,以及Swing的事件处理和内部类的概念,帮助读者深入理解Java GUI编程。
摘要由CSDN通过智能技术生成

7.1 绘图

  1. 图形环境和图形对象:
    GUI组件左上角坐标默认为(0,0),从左上角到右下角坐标增加,坐标的单位是像素;
    Graphics对象,抽象类,专门管理图形环境,提供了一个与平台无关的绘图接口;
    各平台上实现的Java系统将创建Graphics类的一个子类来实现绘图功能,但是这个子类对程序员是透明的;
    执行paint方法时,系统会传递一个指向特定平台的Graphics子类的图形对象g;
  2. 颜色设置:Color类及Graphics类中相关方法;
    字体设置:Font类及Graphics类中相关方法;
  3. Graphics类:绘制字符串或各种图形;
    主窗口:继承JFrame;
    主程序:GraphicsTester application = new GraphicsTester();
    application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  4. Java2D API提供了高级的二维绘图功能,分布在java.awt、java.awt.image等多个包中,能够绘制各种形状、控制笔画、填充形状、变换图形、构建重叠文本和图形、剪切形状等;
    Graphics2D类,Graphics的抽象子类,使用Java2D API必须建立该类对象;
  5. 传递给paint方法的对象是Graphics2D的一个子类实例,被向上转型为Graphics类的实例,要访问Graphics2D功能,必须将传递给paint方法的Graphics引用强制转换为Graphics2D引用:Graphics2D g2d = (Graphics2D)g;

7.2 Swing基础

  1. JFC(Java Foundation Classes),关于GUI组件和服务的完整集合,作为Java Se的一个有机部分,主要包含AWT、Java2D、Accessibility、Drag&Drop、Swing共5个部分;
    Swing:JFC的一部分,提供按钮、窗口、表格等所有组件,纯Java组件;
    Swing出现之前:AWT包,大多重量级组件,含有本地代码;
    Swing组件名称是在原来AWT组件名称前加上J,如JButton、JCheckBox、JScrollbar等,是JComponent类的子类;
    架构在AWT之上,是AWT的扩展而不是取代;
    完全由Java语言编写,外观和功能不依赖于任何由宿主平台的窗口系统提供的代码,是轻量级组件;
    可以提供更丰富的视觉感受;
  2. 在Applet和Application中应用Swing:
    在Applet中应用Swing,要将Swing组件加载到Applet容器上(通常是JApplet),通常在init方法中完成;
    在Application中应用Swing,要将Swing组件加载到这个Application的顶层容器(通常是JFrame中);

7.3 Swing的层次

  1. 多数Swing组件的继承层次:
    java.lang.Object -> java.awt.Component -> java.awt.Container -> javax.swing.JComponent
    JComponent类是除了顶层容器以外所有Swing组件的超类;
  2. Component类:
    包含paint、repaint方法,可以在屏幕上绘制组件;
    大多数GUI组件直接或间接扩展Component;
  3. Container类:
    容器类,容纳相关组件;
    包括add方法,用来添加组件;
    包括setLayout方法,用来设置布局,帮助Container对象对组件定位和设置大小;
  4. JComponent类(多数Swing组件的超类)
    可定制的观感,即可根据需求定制观感;
    快捷键(通过键盘直接访问GUI组件);
    一般的事件处理功能;
  5. Swing的组件和容器层次:
    顶层容器JFrame(单个主窗口),JDialog(二级窗口(对话框)),JApplet(在浏览器窗口中实现一个applet显示区域),都是重量级组件(必须和操作系统打交道),分别从原来AWT组件的Frame、Dialog和Applet类继承而来,每个使用Swing组件的Java程序必须至少有一个顶层容器放置其他组件;
    中间层容器:一般用途的(JPanel、JScrollPane、JSplitPane、JTabbedPane、JToolBar),特殊用途的(JInternalFrame、JRootPane);
    原子组件:直接与用户交互的组件,显示不可编辑信息的(
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值