码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-02-01 16:44:04      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:新建   abstract   其他   步骤   orm   平台   phi   基于   一个   

《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 基础知识》七

标签:新建   abstract   其他   步骤   orm   平台   phi   基于   一个   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!