《Java核心技术 卷1 基础知识》七
Posted ase265
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《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类的子类
以上是关于《Java核心技术 卷1 基础知识》七的主要内容,如果未能解决你的问题,请参考以下文章