代码改变世界

java 绘制图形

2017-07-18 13:52  伟大的程序员2  阅读(464)  评论(0编辑  收藏  举报

package baseTest;

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;

public class DrawLineFrame {
public static void main (String [] args){
JFrame window = new DrawFrame();
window.setTitle("绘制图形");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(100,100,600,400);
window.setVisible(true);
}
}

//窗口类
class DrawFrame extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;

public DrawFrame(){

add(new DrawComponent());
pack();
}
}

//图形类
class DrawComponent extends JComponent{
/**
*
*/
private static final long serialVersionUID = 1L;
private static final int DEAFULT_WIDTH = 400;
private static final int DEFAULT_HEIGHT = 400;
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D)g;
//绘制矩形
double leftx = 100;
double topy = 100;
double width = 200;
double height = 150;
Rectangle2D rect = new Rectangle2D.Double(leftx,topy ,width,height);
g2.draw(rect);

//绘制椭圆
Ellipse2D ellipse = new Ellipse2D.Double();
ellipse.setFrame(rect);
g2.draw(ellipse);
//绘制直线
g2.draw(new Line2D.Double(leftx,topy,leftx + width ,topy + height));
//画正圆
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);
}
}