《Java核心技术 卷1 基础知识》七

《Java核心技术 卷1 基础知识》

第10章 图形程序设计

在Java1.0刚出现时,就包含了一个基本GUI程序设计的类库,即抽象窗口工具箱(Abstract Window Toolkit,AWT)
基本AWT库采用将处理用户界面元素的任务委派给每个目标平台(如windows、Macintosh等)的本地GUI工具箱的方式,
由本地工具箱负责用户界面元素的创建和动作

但由于在不同的平台上,操作行为有一些微妙的差别
因此,AWT也由“一次编写,随处使用”变为“一次编写,随处调试”

最后Sun公司和Netscape公司合作,创建了一个名为Swing的用户界面库,可以使得所有平台上的外观和动作一样
值得注意的是,Swing没有完全替代AWT,而是基于AWT框架之上
Swing仅仅提供了能力更为强大的用户界面组件

在Java中,顶层窗口被称为框架(frame),
在AWT中是Frame类,在Swing中是JFrame

Swing位于javax包中,javax被认为是java的扩展包,而不是核心包
所有的Swing组件必须由事件分派线程进行配置,线程将鼠标点击和按键控制转移到用户接口组件

Event.Quue.invokeLater(()->
{
statements
});

但实际上许多程序并没有在事件分派线程中初始化用户界面,而是直接在主线程中完成初始化
但由于Swing太过复杂,无法保证直接在主线程初始化的安全性

AWT和Swing中框架和组件类的继承层次

如果没有明确地指定框架的大小,所有框架的默认值为0*0像素
对于专业程序来说,为了确定合适的框架大小,需要检查屏幕的分辨率,并根据屏幕的分辨率来设置框架的大小
可以通过调用Toolkit类的静态方法getDefaultToolkit来获取屏幕大小

Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;//获取屏幕的宽
int screenHeight = screenSize.height;//获取屏幕的长
setSize(screenWidth/2,screenHeight/2);//设置窗口大小
setLocationByPlatform(true);

在java中,框架被设置为放置组件的容器,可以将菜单栏和其他的用户界面元素放置在其中
Jframe的结构如图:

可以看出Jframe中有四层窗格,Swing程序员应该关心的是内容窗格
若要在框架上显示组件,则需要往内容窗格上添加组件

往框架Frame上添加内容的一般步骤为:
新建一个内容面板
新建控件,如Button
往内容面板中添加Button
往框架中添加内容面板

在Java中,所有的绘制必须使用Graphics对象,其中包含了绘制图案、图像和文本的方法
但Graphics的操作能力有限,Java SE 1.2 引入了Java 2D库,这个库实现了一组功能强大的图形操作
要想使用Java 2D库绘制图形,需要获得一个Graphics2D类对象,该类为Graphics类的子类

原文地址:https://www.cnblogs.com/ASE265/p/12248580.html

时间: 2024-08-10 21:20:42

《Java核心技术 卷1 基础知识》七的相关文章

Hibernate的七种映射关系之七种关联映射(二)

继续上篇博客 七.Hibernate双向一对多关联映射:让多的一端来维护关系. 主要是解决一对多单向关联的缺陷,而不是需求驱动的. 1.在Student.java实体类里添加Classes引用.private Classes classes; 2.Student.hbm.xml里添加many-to-one标签:<many-to-one name="classes" column="classesid"/>.Classes.hbm.xml在例子(六)里的那

Hibernate的七种映射关系之七种关联映射(一)

关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用. 一.Hibernate多对一关联映射:就是在"多"的一端加外键,指向"一"的一端. 比如多个学生对应一个班级,多个用户对应一个级别等等,都是多对一关系. 1."多"端实体加入引用"一"端实体的变量及getter,setter方法. 比如说多个学生对应一个班级,在学生实体类加入:private Grade grade; 2."多"端配置文

【Beta】 第七次Daily Scrum Meeting

第七次meeting会议 [Beta] 第七次Daily Scrum Meeting 一.本次会议为第七次meeting会议 二.时间:10:00AM-10:20AM 地点:禹州楼 三.会议站立式照片 四.今日任务安排 成员 昨日任务 今日任务 林晓芳 重观界面问题上的美化处理 对现有的东西进行总结,主要是关于此次采用的一些方法.库等等 林清青 与其他组探讨交流进度 对于接下里的任务方向与大家探讨 陈惠 重观界面问题上的美化处理 基于现有的东西进行更深入的完善,例如,如何让闹钟提醒更人性化 郑莹

SpringBoot - 二零一七0421小记

一.SpringBoot使用起来比起SpringMVC更便捷,在注解上的小变化,我记录了下面几个: @Controller + @ResponseBody = SpringMVC中用@RestController来代替前面两个注解,通过这个注解,可以将所有的前端http请求放入SpringBoot的Controller容器中,并返回json格式的数据给前端 @RequestMapping(value={"/hello","/hi"},method=RequestMe

第七课 进程通信

unix_c_07.txt================第七课 进程通信================一.基本概念------------1. 何为进程间通信~~~~~~~~~~~~~~~~~进程间通信(Interprocess Communication, IPC)是指两个,或多个进程之间进行数据交换的过程.2. 进程间通信分类~~~~~~~~~~~~~~~~~1) 简单进程间通信:命令行参数.环境变量.信号.文件.2) 传统进程间通信:管道(fifo/pipe).3) XSI进程间通信:

《七周七数据库》读书分享

# 七周七数据库 读书分享会第一期 2017.02.12 <七周七数据库> - Eric Redmond ## 预备知识 ACID:原子 一致 隔离 持久 CAP原则:一致性 可用性 分区容错性,在分布式环境下,至多只能同时满足其二 "小明,你的数据库作业呢?""我可以今天提交一半的作业,或者明天提交全部的作业,但无法在今天提交全部的作业.""...小明你给我滚出去!" 小知识点: * 原子性:原子性代表中间状态的透明性,想象从a账户

Java 第七章 类和对象 笔记

一.对象的特征--类的属性 每个对象的每个属性都有特定的值 对象的操作--类的方法 二.封装:对象同时具有属性和方法两项特性.     对象的属性和方法通常被封装在一起,共同体现事物的特性,     二者相辅相成,不能分割. 三.类和对象的区别:     类:抽象的概念,是一个模子,确定了对象的属性和方法.    对象:能够看得见摸得着的实物.具有静态和动态特征. 四.定义类的步骤:     1.定义类名      2.定义类的属性 访问修饰符 属性类型 属性名称=默认值:     3.定义类的

TCP/IP四层模型和OSI七层模型的概念

转:http://blog.csdn.net/superjunjin/article/details/7841099/ TCP/IP四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层).   TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传

第七章

第七章 控制发光二极管. 尽管linux 驱动直接和硬件打交道,但并不是linux驱动直接向硬件中的内存写数据,而是与本机的i/o内存进行交互.所谓I/O内存是通过各种接口(PCI, USB.蓝牙以太网等)连接到主机的硬件在主机的内存映射.Linux内核提供了多个与I/O内存交互的函数.Linux内核的内存管理模块负责同步I/O内存与硬件的数据. 每一个连接Linux 的硬件在I/O内存中都会有映射首地址.在使用ioread 32.ioread32等函数读写I/O内存时需要指定这些首地址.Led

JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展

JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来聊聊final这个关键字 final可以修饰类,方法和变量 final修饰的类不可以被继承 final修饰的方法不可以被覆盖 final修饰的变量是一个常量,只能被赋值一次 内部类只能访问被final修饰的局部变量 final,故名思意,就是最终的意思,由以上的五种特性,不过final的出现,也是有