`
jingwuyuan
  • 浏览: 8835 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java核心技术基础知识个人总结之——图形程序设计基础

阅读更多
一、swing概述:swing基于AWT架构之上,Swing是指被绘制的用户界、面类,AWT是指像事件处理这样的窗口工具箱的底层机制,Swing可以让用户随意的选择喜欢的感官。


二、框架:没有包含在其他窗口中的窗口被称为框架(frame),在AWT中有一个Frame类,是用来描述框架的,这个类在Swing版本中是JFrame(绝大数的Swing组件都有J开头),它
是极少数几个不绘制在画布上的Swing组件之一,它的修饰部件(如按钮,标题栏,图标等)由用户的窗口系统绘制,而不是由Swing绘制,Swing用来绘制框架里的内容。

JFrame.setVisible(true)方法可以让框架可见,JFrame.show()可以让框架可见并且置于其他窗口的前面。JFrame.setDefaultCloseOperation(int i)可以定义关闭这个框架时候的响应动作,让程序退出的常量是JFrame.EXIT_ON_CLOSE。(以上方法都不是静态方法!)在初始化完后,main方法退出,这个时候程序并没有终止,终止的只是主线程,事件调度线程保持程序处于激活状态,直到关闭框架或者调用System.exit。

改变框架:
1、Component类:setVisible(boolean bool)设置窗口是否显示;set||getSize(int w,int h||Dimension d)设置/获取大小;  set||getLocation(int x,int y)设置获取位置,setBounds(int x,int y,int w,int h)设置位置和大小。

2、windows类:toBack()将窗口移动到桌面窗口栈的后面 ;toFront()将窗口移动到桌面的前面;setLocationByPlatfrom(boolean bool)由平台选择一个合适的位置显示窗口。
3、Frame类: isResizable(boolean bool)是否可以让用户改变大小;setTitle(String str)设置标题;setIconImage(Image img)设置框架的图标。
setUndecorate(boolean bool)框架显示中的标题栏以及关闭按钮这些是否显示;setExtendedState(int state)设置窗口的状态,如Frame.ICONIFIED可以让窗口最小化。

4、Toolkit类:getDefaultToolkit()返回一个默认的工具箱;Dimension getScreen()返回用户屏幕的尺寸; Image getImage(String filename)加载得到一个指定的图像对象。


三、绘制组件:绘制一个组件,需要定义一个扩展JComponent的类,并覆盖其中的paintComponent(Graphics g)方法,在JAVA中,所有的绘制都必须使用Craphics对象。只要窗口需要重新绘图时,事件处理器就会通告组件,从而执行所有组件的paintComponent方法。不用自己调用paintComponent方法,在应用程序需要重新绘图的时候,这个方法会自动的被调用,如果需要强制重新绘制组件,那么要调用的是repaint方法,他将引发采用相应配置的Graphics对象调用所有组件的paintComponent方法。
1、JFrame类:getContentPane()返回框架里的内容窗口;add(Component comp)将一个给定的组件添加到该框架的内容窗口中。
2、Component类:repaint()重新绘制组件。
3、JPanel类是一个可以包含其他组件的容器,但同样也可以在其上面进行绘制。


四、绘制2D图形:主要是用java.awt.Graphics2D类去绘制图形的。图形的类主要在java.awt.geom里。要掌握这些之间的关系。paintComponent方法可以自动获得一个Graphics对象,可以把他强制转型成Graphics2D对象。以下是java.awt.geom包里的类:

Point2D类:用于描述一个点的抽象类,包含了2个内部静态类(也是其子类):Double,Float分别用给定的双精度浮点数和浮点数位置去构造一个点。point类继承point2D类,并
且是用整型数去构造一个点。

Shape接口:图形类的接口(不包括Point2D类),RectangularShape类继承该接口。

RectangularShape抽象类:包含很多获取闭合矩形图像位置信息的方法:getCenterX() getCenterY() getMinX() getMinY() getMaxX() getMaxY()返回闭合矩形的中心,以及最小、最大X和Y坐标值。setFrame()几个重载的方法将此 Shape 的框架矩形设置为指定的 Rectangle2D。

Rectangle2D抽象类:继承RectangularShape抽象类,包含了2个内部静态类(也是其子类):Double,Float分别用给定的双精度浮点数和浮点数(左上角x坐标,左上角y坐标,长、宽)去构造一个矩形,也可以先用不带参数的构造器构造一个空的矩形,然后用方法setFrameFromDiagonal(point x,point y)参数表示对角的2个点去构造一个矩形,也可以是用setFrameFromDiagonal(px,py,qx,qy)参数表示对角点的X,Y坐标去构造一个矩形,该方法属于RectangularShape抽象类。Rectangle类继承Rectangle2D类,并且是用整型数去构造一个矩形。

Ellipse2D抽象类:继承RectangularShape抽象类,包含了2个内部静态类(也是其子类):Double,Float分别用给定的双精度浮点数和浮点数(左上角x坐标,左上角y坐标,长、宽)去构造一个椭圆,也可以先用不带参数的构造器构造一个空的椭圆,然后用方法setFrameFromCenter(point center,point x)参数表示一个中心点坐标,和一个角坐标去构造一椭圆,该方法属于RectangularShape抽象类,也可以用setFrame()去设置一个外围的闭合矩形,然后构造椭圆。

Line2D抽象类:继承Shape接口,用于描述一条直线的抽象类,包含了2个内部静态类(也是其子类):Double,Float分别用给定的双精度浮点数和浮点数位置去构造一条直线,4个参数,分别表示起始点的X,Y坐标和结束点的X,Y坐标,参数也可以是2个point2D的对象,分别表示起始点和结束点。point类继承point2D类,并且是用整型数去构造一个点。

注意:只有Point2D和Rectangle2D这两个类有实现类Point和Rectangle用来用整型数绘图。可以用drawPolygon(int[],int[],int)绘制多边形,详情可以查看API文档。


五、颜色:在每次绘制前都可以用Graphics2D的对象去调用setPaint,指定一种颜色去绘制图形,在后面的draw绘制图形时都是用指定的颜色,也可以用fill去用这种颜色填充图形。Color类里面有常量表示一些常用的颜色,也可以new Color(int r,int p,int g)构造一个颜色,SystemColor里面也有很多表示系统颜色的常量。

六、图像:可以用ImageIO类里的静态方法read去读取图像,参数可以是File对象也可以是URL对象。
Graphics类:绘制图像用drawImage(Image,int x,int y,ImageObserver observer)参数是:要绘制的对象,左上角的X坐标,左上角的Y坐标,绘制进程中以通告为目的的对象。

drawImage(Image,int x,int y,int width,int height,ImageObserver observer)多的两个参数表示图像的宽和高。

copyArea(int x,int y,int width,int height,int dx,int dy)从屏幕坐上角X坐标和Y坐标的位置开始拷贝屏幕的一块高为width宽为height的区域到另一块与他相隔水平距离为dx垂直距离为dy的区域。


分享到:
评论

相关推荐

    JAVA 核心技术基础篇1

    全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、泛型程序设计、集合以及多线程等内容。. 全书对Java...

    《Java语言程序设计——基础篇》第三章选择作业答案.zip

    《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...

    《Java语言程序设计——基础篇》第二章基本程序设计示例.zip

    《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...

    《Java语言程序设计——基础篇》第一章计算机、程序和Java概述作业答案.zip

    《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...

    《Java语言程序设计——基础篇》第三章选择示例.zip

    《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...

    《Java语言程序设计——基础篇》第五章方法示例.zip

    《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...

    《Java语言程序设计——基础篇》第四章循环示例.zip

    《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...

    java 核心编程 java

    全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、泛型程序设计、集合以及多线程等内容。. 全书对Java...

    Java核心技术_第八版(英文原版).part2

    本版也不例外,它反映了Java SE 6的新特性,全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、泛型程序...

    Java核心技术_第八版(英文原版).part1

    本版也不例外,它反映了Java SE 6的新特性,全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、泛型程序...

    《Java语言程序设计——基础篇》第一章计算机、程序和Java概述示例.zip

    《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...

    Java语言程序设计

    目录第1章 Java语言基础知识 1.1 Java语言与面向对象的程序设计 1.1.1 面向对象的程序设计思想 1.1.2 Java语言的特点 1.1.3 Java类库 1.2 Java程序概述 1.2.1 Java开发环境 1.2.2 Application举例 1.2.3 ...

    《Java语言程序设计——基础篇》第二章基本程序设计作业答案.zip

    《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...

    Android程序设计基础

    丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115215369 上架时间:2009-11-6 出版日期:2009 年11月 开本:16开 页码:196 版次:1-1 编辑推荐  你的第一本Android书.  Pragmatic系列...

    JAVA核心技术

    JSP(TagLib)——>ActionForm——>Action ——> Event——>EJBAction——>EJB ——>DAO——>Database JSP(TagLib) (forward) <——Action <——EventResponse<—— ??Turbine:??主要应用方面:WEB层。??主要应用...

    Java实现的画图形学程序(论文+源代码),可用作毕业设计,课程设计

    毕业论文——包含了一篇探讨画图形学程序项目背景、技术原理和实现过程的学术论文,可作为论文撰写参考。通过阅读论文,学习者可以了解项目的理论基础,深入理解项目的实现细节,提升分析和解决问题的能力。 使用...

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    Java典型模块

    1.2 Java程序设计环境 1.2.1 命令行工具——JDK 6.0 1.2.2 安装工具包JDK 1.2.3 设置JDK环境 1.2.4 集成开发环境安装——MyEclipse 8.5 1.2.5 MyEclipse的一些常用操作 1.3 创建和运行Java程序 1.3.1 手工创建、编译...

Global site tag (gtag.js) - Google Analytics