java图像界面开发简单实例
Graphics2D、Rectangle2D、Ellipse2D、Line2D的简单应用,原理为创建相应的图形对象,并设置图形的大小及相关设置,通过Graphics2D对象的draw方法将图形对象保存与JPanel面板中,代码如下:
importjava.awt.Graphics;
importjava.awt.Graphics2D;
importjava.awt.geom.Ellipse2D;
importjava.awt.geom.Line2D;
importjava.awt.geom.Rectangle2D;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
/**
*绘图相关对象Graphics2D、Rectangle2D、Ellipse2D、Line2D的简单应用实例
*@author左杰
*
*/
publicclassExample5FrameextendsJFrame{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
publicExample5Frame(){
setTitle("绘制图形");//设置窗体的标题
setSize(400,400);//设置窗体的大小
//将定义的DrawPanel对象添加到窗体
DrawPanelpanel=newDrawPanel();
add(panel);
}
publicstaticvoidmain(String[]args){
Example5Frameframe=newExample5Frame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
/**
*定义一个JPanel对象用于保存绘制的图形的设置
*/
classDrawPanelextendsJPanel{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
publicvoidpaintComponent(Graphicsg){
super.paintComponent(g);
Graphics2Dg2=(Graphics2D)g;//将Graphics对象转换为Graphics2D对象
//绘制矩形
doubleleftX=100;//定义开始绘制的坐标
doubletopY=100;
doublewidth=200;//定义绘制宽度
doubleheight=150;//定义绘制高度
Rectangle2Drect=newRectangle2D.Double(leftX,topY,width,height);//创建矩形对象
g2.draw(rect);//将矩形对象绘制于Panel面板上
//绘制椭圆
Ellipse2Dellipse=newEllipse2D.Double();//创建椭圆对象
ellipse.setFrame(rect);//设置椭圆的绘制框架为上面的矩形(即与矩形内接)
g2.draw(ellipse);//将椭圆对象绘制于Panel面板上
//绘制线条
Line2Dline=newLine2D.Double(leftX,topY,leftX+width,topY+height);//创建线条对象(4个参数表示两个端点坐标)
g2.draw(line);//将线条对象绘制于Panel面板上
//绘制圆
doublecenterX=rect.getCenterX();//定义圆心坐标(以矩形的中心为圆心)
doublecenterY=rect.getCenterY();
doubleradius=150;//定义圆的半径
Ellipse2Dcircle=newEllipse2D.Double();
circle.setFrameFromCenter(centerX,centerY,centerX+radius,centerY+radius);//设置圆形的绘制框架(4个参数表示中心点坐标和角点坐标)
g2.draw(circle);//将圆形对象绘制于Panel面板上
}
}
importjava.awt.Graphics2D;
importjava.awt.geom.Ellipse2D;
importjava.awt.geom.Line2D;
importjava.awt.geom.Rectangle2D;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
/**
*绘图相关对象Graphics2D、Rectangle2D、Ellipse2D、Line2D的简单应用实例
*@author左杰
*
*/
publicclassExample5FrameextendsJFrame{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
publicExample5Frame(){
setTitle("绘制图形");//设置窗体的标题
setSize(400,400);//设置窗体的大小
//将定义的DrawPanel对象添加到窗体
DrawPanelpanel=newDrawPanel();
add(panel);
}
publicstaticvoidmain(String[]args){
Example5Frameframe=newExample5Frame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
/**
*定义一个JPanel对象用于保存绘制的图形的设置
*/
classDrawPanelextendsJPanel{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
publicvoidpaintComponent(Graphicsg){
super.paintComponent(g);
Graphics2Dg2=(Graphics2D)g;//将Graphics对象转换为Graphics2D对象
//绘制矩形
doubleleftX=100;//定义开始绘制的坐标
doubletopY=100;
doublewidth=200;//定义绘制宽度
doubleheight=150;//定义绘制高度
Rectangle2Drect=newRectangle2D.Double(leftX,topY,width,height);//创建矩形对象
g2.draw(rect);//将矩形对象绘制于Panel面板上
//绘制椭圆
Ellipse2Dellipse=newEllipse2D.Double();//创建椭圆对象
ellipse.setFrame(rect);//设置椭圆的绘制框架为上面的矩形(即与矩形内接)
g2.draw(ellipse);//将椭圆对象绘制于Panel面板上
//绘制线条
Line2Dline=newLine2D.Double(leftX,topY,leftX+width,topY+height);//创建线条对象(4个参数表示两个端点坐标)
g2.draw(line);//将线条对象绘制于Panel面板上
//绘制圆
doublecenterX=rect.getCenterX();//定义圆心坐标(以矩形的中心为圆心)
doublecenterY=rect.getCenterY();
doubleradius=150;//定义圆的半径
Ellipse2Dcircle=newEllipse2D.Double();
circle.setFrameFromCenter(centerX,centerY,centerX+radius,centerY+radius);//设置圆形的绘制框架(4个参数表示中心点坐标和角点坐标)
g2.draw(circle);//将圆形对象绘制于Panel面板上
}
}
如果需要绘制填充图形,只需要将draw方法改为fill方法即可,通过Graphics2D对象的setPaint方法可以设置相应的填充颜色
本文介绍如何使用Java的Graphics2D、Rectangle2D、Ellipse2D及Line2D类进行基本图形绘制。通过实例展示了如何在JPanel上绘制矩形、椭圆、线条和圆形,并提供了完整的代码示例。
759

被折叠的 条评论
为什么被折叠?



