java之初学图形程序设计-java 2D图形

[color=blue]******************java 2D图形

要想绘制java 2D图形,就需要获得一个Graphics2D类对象,这个类是Graphics类的子类

paintComponent 方法会自动获取一个Graphics2D对象,我们需要转换类型

public void paintComponent(Graphics g){

Graphics2D g2= (Graphics2D)g;

}
java2D库采用面向对象的方式将几何图形组织起来,包含直线,矩形的椭圆类

Line2D Rectangle2D Eclipse2D 这些类都实现了shape接口

java2D库对每个图形类设置了两个版本,一个是节省空间的float类型的坐标,另一个是为那些懒惰的程序员提
供的double类型的坐标

如:Rectangle2D.Float Rectangle2D.Double


import javax.swing.*;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;

public class DrawTest{
public static void main(String[] args){
DrawFrame frame = new DrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
//显示系统支持的字体
String[] fontNames = GraphicsEnvironment
.getLocalGraphicsEnvironment()
.getAvailableFontFamilyNames();
for (String fontName :fontNames)
System.out.println(fontName);
}
}

class DrawFrame extends JFrame{
public DrawFrame(){
setTitle("drawtest");
setSize(DEFALUT_WIDTH,DEFALUT_HEIGHT);
DrawPanel panel = new DrawPanel();
panel.setBackground(SystemColor.desktop);//设置背景色 SystemColor.window可以设成桌面所有

窗口的默认色
add(panel);
}
public static final int DEFALUT_WIDTH = 400;
public static final int DEFALUT_HEIGHT = 400;
}

class DrawPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
//draw a rectangle
double leftX = 100;
double topY = 100;
double width = 200;
double height = 150;
Rectangle2D rect = new Rectangle2D.Double(leftX,topY,width,height);
g2.setPaint(Color.RED);//用预定义的常量设定颜色
g2.fill(rect); //使用当前颜色填充闭合图形
g2.drawString("Warning",100,100);
g2.draw(rect);
//draw the enclose ellipse
Ellipse2D ellipse = new Ellipse2D.Double();
ellipse.setFrame(rect);
g2.setPaint(new Color(0,255,128));
g2.fill(ellipse);//用红绿蓝成分创建一个color对象设置颜色
g2.draw(ellipse);
//draw a diagonal line
g2.draw(new Line2D.Double(leftX,topY,leftX+width,topY+height));
//draw a circle with the same Center
double centerX = rect.getCenterX();
double centerY = rect.getCenterY();
double radius = 150;
Ellipse2D circle = new Ellipse2D.Double();
circle.setFrameFromCenter(centerX, centerY,centerX+radius,centerY+radius);
g2.draw(circle);
}
}


***********************注释*************************

-------------java.awt.geom.RectangularShape

1.double getCenterX()
double getCenterY()
double getMinX()
double getMinY()
double getMaxX()
double getMaxY()
返回闭合矩形的中心,以及最大,最小的x和y坐标

2.double getX()
double getY()
返回闭合矩形的高和宽

3.double getX()
double getY()
返回闭合矩形左上角的坐标

---------------java.awt.geom.Rectangle2D.Double

Rectangle2D.Double(double x,double y,double w,double h)
使用给定的左上角坐标,和宽高来构造一个矩形

---------------java.awt.geom.Ellipse2D.Double

Ellipse2D.Double(double x,double y,double w,double h)
使用给定的左上角,宽和高的外接矩形构造一个椭圆

-------------java.awt.geom.Point2D.Double

Point2D.Double(double x,double y)
使用给定坐标构造一个点

--------------java.awl.geom.Line2D.Double

Line2D.Double(Point2D start,Point2D end)
Line2D.Double(double startX,double starY,double endX,doubleY)
使用给定的起点和终点构造直线

------------------java.awt.Color

提供了13个预定义的常量

Color(int r,int g,int b)
创建一个颜色对象

------------------java.awt.Graphics

void setColor(Color c)
改变当前的颜色,后续的绘图都使用这个新颜色

-----------------java.awt.Graphics2D

void setPaint(Paint p)
设置这个图形环境的绘制属性

--------------java.awt.Component

void setBackground(Color c)
设置背景颜色

void setForeground(Color c)
设置前景色[/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值