`
jamie.wang
  • 浏览: 347693 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java how to program(Third Edition) ——手记(六)

 
阅读更多

Java how to programThird Edition II

——手记

第十一章 图形和Java2D

1.由于窗口最左上角的坐标(00)实际上是标题栏的后面。所以,使用坐标绘制图形时应该调整它到窗口边框的里面。Container类(java中所有窗口类的超类)中有一个专门针对该目的的方法getInsets,它能返回一个Insets对象(java.awt包)。Insets对象中有4public成员——top,bottom,leftright,它们代表了窗口中可绘制区域的四条边。

2Graphics是一个抽象类,这是由Java的可移植性决定的。在支持Java的各个平台上,绘图的实现是不同的,还没有一个能在所有系统上实现绘图功能的类。在各种平台上使用Java时,系统创建Graphics的一个派生类,由它来实际实现所有的绘图功能,为用户提供界面Graphics类,使我们能够编写以独立与平台的方式使用图形的程序,将其实现隐蔽起来。

3Color方法和与颜色相关的Graphics方法:

1public Color(int r,int g,int b) //在红、绿、蓝颜色含量的基础上创建一种颜色,每种含量都用0~255之间的一个整数表示;

2public Color(float r,float g,float b) //在红、绿、蓝颜色含量的基础上创建一种颜色,每种含量都用0.0.~1.0之间的一个浮点数表示;

3public int getRed() //返回一个0255之间表示红色含量的值;

4public Color getColor() //返回一个代表图形上下文当前颜色的Color对象;

5publc setColor(color c) //设置图形上下文设置当前绘图颜色。

4Java选择颜色的GUI控件JcolorChooser(javax.swing)

JcolorChooser类的static方法showDialog显示颜色选择对话框。该方法返回被选择的Color对象(如果按下cancel键,或没有按下OK键就关闭了对话框,则返回null)。

showDialog方法有三个参数,第一个指向其父控件,String为对话框标题栏显示的信息,最后一个为对话框中选中的初始颜色。

5.字体的构造函数和Graphics类方法setFont

1public Font(String name, int style,int size) //用指定的字体,风格和大小创建一个Font对象。

2public int getStyle(); public String getName(); public int getSize();

public String getFamily();

3public boolean isPlain(); pulbic boolean isBold(); public boolean isItalic();

4public Font getFont(); //返回一个字体对象的引用,表示但前字体;

5public void setFont(Font f); //设置当前字体为Font对象指定的字体,风格和大小;

6.用于绘制直线、矩形和椭圆的Graphics方法:

1public void drawLine(int x1,int y1,int x2,int y2);

2public void drawRect(int x,int y,int width,int height); //用指定的参数画一个空心的矩形

3public void fillRect(int x,int y,int width,int height); //用指定的参数画一个实心的矩形

4public void clearRect(int x,int y,int width,int height); //用当前背景色绘制一个矩形;

5public void drawRoundRect(int x,int y,int with,int height,int arcWidth,int arcHeight);//其中arcWidtharcHeight决定其圆角

6public void fillRoundRect(int x,int y,int with,int height,int arcWidth,int arcHeight);

7public void draw3DRect(int x,int y,int with,int height,boolean b);//btrue时,矩形为突出,false则凹陷;

8public void fill3DRect(int x,int y,int with,int height,boolean b);

9public void drawOval(int x,int y,int with,int height);

10) public void fillOval(int x,int y,int with,int height);

7.新的Java2D API提供了高级的二维图形功能,这些都在下列包中:java.awt, java.awt.image, java.awt.color, java.awt.font, java.awt.geom, java.awt.print, java.awt.image.renderable

8.实例分析:

1)源代码:

package Shapes;

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

import java.awt.geom.*;

import java.awt.image.*;

public class Shapes extends JFrame{

public Shapes(){

super("Drawing 2D shapes");

setSize(425,160);

show();

}

public void paint(Graphics g){

Graphics2D g2d=(Graphics2D)g;

g2d.setPaint(//setPaint 方法设置paint对象,以决定显示的颜色和形状;

new GradientPaint(5,30,Color.blue,35,100,Color.green,false)//最后一个参数

//false表示渐变颜色不循环;

);

g2d.fill(new Ellipse2D.Double(5,30,65,100)); //使用双精度的浮点数设置尺寸;

g2d.setPaint(Color.red);

g2d.setStroke(new BasicStroke(10.0f)); //设置画笔的宽度为10象素;

g2d.draw(new Rectangle2D.Double(80,30,65,100));

//BufferedImage对象生成花纹,BufferedImage类可以用颜色和灰度来产生图形,该

//处的1010表示BufferedImage10个象素宽,10个象素高,BufferedImage.TYPE_INT_RGB

//表示图像中存储的颜色用RGB体系;

BufferedImage buffImage=new BufferedImage(10,10,BufferedImage.TYPE_INT_RGB);

Graphics2D gg=buffImage.createGraphics(); //BufferedImage中绘制图形;

gg.setColor(Color.yellow);

gg.fillRect(0,0,10,10);

gg.setColor(Color.black);

gg.drawRect(1,1,6,6);

gg.setColor(Color.blue);

gg.fillRect(1,1,3,3);

gg.setColor(Color.red);

gg.fillRect(4,4,3,3);

g2d.setPaint(

new TexturePaint(buffImage,new Rectangle(10,10)) //TextturePaint对象用存储在

//BufferedImage中的图像作为填充纹理来填充图形;

);

g2d.fill(new RoundRectangle2D.Double(155,30,75,100,50,50));

g2d.setPaint(Color.white);

g2d.setStroke(new BasicStroke(6.0f));

g2d.draw(

new Arc2D.Double(240,30,75,100,0,270,Arc2D.PIE)//Arc2D.PIE常量指出是用两条

//直线封闭弧形, Arc2D.CHORD表示将画一条从起点到终点的直线,Arc2D.OPEN表示不封闭;

);

g2d.setPaint(Color.green);

g2d.draw(new Line2D.Double(395,30,320,150));

float dashes[]={10};

g2d.setPaint(Color.yellow);

g2d.setStroke(

new BasicStroke(4,BasicStroke.CAP_ROUND,//设置画笔4个象素,端点有为圆角;

BasicStroke.JOIN_ROUND, //线条汇合处也为圆角;

10,dashes,0) //dashes表示小段虚线的长度;

//0表示dashes数组中的起始位置;

);

g2d.draw(new Line2D.Double(320,30,395,150));

}

public static void main(String args[]){

Shapes app=new Shapes();

app.addWindowListener(

new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

);

}

}

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"></shapetype><stroke joinstyle="miter"></stroke><formulas></formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f><lock aspectratio="t" v:ext="edit"></lock><shape id="_x0000_i1025" style="WIDTH: 318.75pt; HEIGHT: 120pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:/DOCUME~1/haidao/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata>

第十二章 基本图形用户界面构件

1Swing构件经常被称为轻量级构件,因为他们是用Java写成的,所以就不需要使用那些相关于各种平台的复杂GUI功能。AWT(Abstract Windows Toolkit)构件(许多和Swing构件功能相同)被系在各自的本地平台上,相应的称为重量级构件,因为他们依赖于本地平台的窗口系统来决定他们的功能、外观和风格。

2.为了处理图形用户界面事件,需要注册事件侦听器和实现事件处理。一个GUI事件的事件侦听器是一个对象,此对象的类实现了java.awt.event包和javax.swing.event包中一个或多个事件侦听器的接口。

分享到:
评论

相关推荐

    Java How to Program, Early Objects, 11th Edition, Deitel.pdf

    ### Java How to Program, Early Objects, 11th Edition #### 核心知识点概览 本书《Java How to Program, Early Objects, 11th Edition》由Deitel出版社出版,是一本面向初学者和有一定编程基础的学习者介绍Java...

    Java how to program 7th edition 英文原版第七版 Deitel & Deitel (2)

    国外经典教材 Java how to program 英文原版第七版 Deitel 父子名作 总共两个压缩卷 这是第二个

    Java How To Program (late objects)

    ### Java How to Program (Late Objects) - 关键知识点解析 #### 一、书籍概述 《Java How to Program》(第十版,对象延迟版本)是一本经典的计算机编程教材,旨在为初学者提供系统全面的Java语言学习指导。本书...

    Java How to Program, Early Objects, 11th Edition

    Java How to Program, Early Objects, 11th Edition Java How to Program, Early Objects, 11th Edition Java How to Program, Early Objects, 11th Edition Java How to Program, Early Objects, 11th Edition

    Java How To Program Ninth Edition

    《Java How To Program Ninth Edition》是一本专注于Java编程的详细教程,由知名作者Harvey & Paul Deitel编著,特别适合初学者至进阶者学习。该书共分为30个章节,涵盖了从基础语法、面向对象编程概念到高级主题的...

    Java How To Program (Fourth Edition)

    ### Java How to Program (Fourth Edition) - 关键知识点解析 #### 一、基本计算机科学概念的理解 - **计算机科学基础**: 本章节首先介绍了计算机科学的基本概念,包括计算机硬件、软件以及它们之间的交互方式。 - ...

    Java how to program 7th edition 英文原版第七版 Deitel & Deitel (1)

    国外经典教材 Java how to program 英文原版第七版 Deitel 父子名作 总共两个压缩卷 这是第一个

    Java How to Program(9th Edition)

    总的来说,《Java How to Program(9th Edition)》是一本全面的Java学习指南,它涵盖了从基础到进阶的所有关键主题,旨在帮助读者成为一名熟练的Java程序员。通过阅读这本书,你不仅能学到扎实的编程技能,还能了解...

    Java How to Program, 7th Edition-Prentice Hall

    《Java如何编程,第7版-Prentice Hall》由Harvey M. Deitel和Paul J. Deitel联合撰写,是Java编程领域的一本经典教材,涵盖了Java语言的基础知识和一些进阶话题。该书不仅适合初学者,也适合作为有经验的程序员的...

    C++ How to Program, 10th Edition

    C++ How to Program (10th Edition) By 作者: Harvey M. Deitel Paul Deitel ISBN-10 书号: 9332585733 ISBN-13 书号: 9789332585737 Edition 版本: 10th 出版日期: 2017 Format: Paperback C++ How to Program ...

    Visual C# 2008 How to Program 3rd Edition答案 英文版

    Visual C# 2008 How to Program 3rd Edition答案,英文版的。

    Java How to Program, Early Objects, 10th Edition, Deitel 2015.pdf

    ### Java How to Program, Early Objects, 10th Edition (Deitel 2015) 知识点解析 #### 一、书籍介绍与特点 《Java How to Program, Early Objects, 10th Edition》是由Deitel出版社出版的专业Java编程教材。本书...

    java how to program 9 edition

    ### Java How to Program 9th Edition - 关键知识点解析 #### 教材概述与作者介绍 《Java How to Program》第九版是一本经典的Java编程入门教材,在全球范围内被多所大学采用作为Java教学的主要参考资料。本书由...

    Java How to Program

    ### Java How to Program #### 书籍概述 《Java How to Program》是一本深入浅出介绍Java编程语言的经典教材,由Deitel & Associates, Inc.出版。该书采用独特的“实战代码”方法,提供了大量的实际运行代码示例,...

    JAVA How to Program(the sixth edition)

    Introduction to Java Applications Chapter 3. Introduction to Classes and Objects Chapter 4. Control Statements: Part I Chapter 5. Control Statements: Part 2 Chapter 6. Methods: A Deeper Look Chapter ...

    Java How to Program, Sixth Edition

    Java How to Program, Sixth Edition

Global site tag (gtag.js) - Google Analytics