JAVA实验报告简单绘图程序.docx
《JAVA实验报告简单绘图程序.docx》由会员分享,可在线阅读,更多相关《JAVA实验报告简单绘图程序.docx(12页珍藏版)》请在冰点文库上搜索。
JAVA实验报告简单绘图程序
实验三绘制图形
一、实验目的
学会JButton的使用,能进行JButton的基本操作,能使用JButton构造一个图形界面框架通过实验熟悉swing图形用户界面程序设计熟悉java中的事件处理模型,每个事件动作代表的意义进一步提高编程能力,学会独立思考,学会上网查找资料决问题。
二、实验内容
设计一个程序,该程序能够绘制基本的图形(包括圆形、矩形、直线等);要求有一个简单易操作的用户界面(包括菜单、按钮等组件)。
编写的程序要求能够实现保存和读取的功能。
三、实验代码
import;
import;
import;
import
import
import
import;
import;
publicclassMain{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
ewInstance();
con[0]);
con[1]);
con[2]);
}catch(Exceptione){
();
}
demo2=newRect().getClass();
demo3=;
}
}
packagebase;
import
import
import
publicabstractclassGrapicsElem{
Pointstart;
Pointend;
privateColorcolor;
publicColorgetColor(){
returncolor;
}
publicvoidsetColor(Colorcolor){
=color;
}
publicvoidsetStart(Pointstart){
=start;
}
publicvoidsetEnd(Pointend){
=end;
}
publicabstractvoiddoMousePress(Pointp);
publicabstractvoiddoMouseDrag(Pointp);
publicabstractvoiddoMouseRelease(Pointp);
publicabstractvoiddraw(Graphicsg);
}
packagebase;
import
import
import
publicclassLineextendsGrapicsElem{
ArrayListtrack;
publicLine(){
track=newArrayList();
}
@Override
publicvoiddraw(Graphicsg){
for(inti=0;i<()-1;i++){
Pointcur=(i);
Pointnext=(i+1);
,,;
}
}
privatevoidAddPoint(Pointp){
(p);
}
@Override
publicvoiddoMousePress(Pointp){
//TODOAuto-generatedmethodstub
AddPoint(p);
}
@Override
publicvoiddoMouseDrag(Pointp){
//TODOAuto-generatedmethodstub
AddPoint(p);
}
@Override
publicvoiddoMouseRelease(Pointp){
//TODOAuto-generatedmethodstub
AddPoint(p);
}
}
packagebase;
import
import
publicclassRectextendsGrapicsElem{
intx,y,width,height;
@Override
publicvoiddraw(Graphicsg){
//TODOAuto-generatedmethodstub
(getX(),getY(),getWidth(),getHeight());
}
@Override
publicvoiddoMousePress(Pointp){
(p);
(p);
}
@Override
publicvoiddoMouseDrag(Pointp){
(p);
}
@Override
publicvoiddoMouseRelease(Pointp){
(p);
}
publicintgetX(){
return,;
}
publicintgetY(){
return,;
}
publicintgetWidth(){
return}
publicintgetHeight(){
return}
}
packagebase;
import
publicclassCircleextendsRect{
@Override
publicvoiddraw(Graphicsg){
//TODOAuto-generatedmethodstub
(getX(),getY(),getWidth(),getHeight());
}
}
packagewinpaint;
import;
import;
import;
import;
publicclasswindowsPaintextendsJPanel
implementsMouseListener,MouseMotionListener
{
Stringcommand="矩形";
ListLg=newArrayList();
GrapicsElemcur;
JLabellabel;
publicwindowsPaint(Stringtitle){
init();
}
privatevoidinit(){
addMouseListener(this);
addMouseMotionListener(this);
}
/**
*可以使用反射去掉判断语句、
*Class<>g=("");
*();
*@return
*/
privateGrapicsElemnewInstance(){
command=;
if("矩形")){
returnnewRect();
}elseif("圆形")){
returnnewCircle();
}elseif("线")){
returnnewLine();
}
returnnull;
}
@Override
publicvoidpaint(Graphicsg){
//TODOAuto-generatedmethodstub
(g);
Graphics2Dg2d=(Graphics2D)g;
//());
(newBasicStroke);
for(inti=0;i<();i++){
GrapicsElemge=(i);
(g);
}
}
//@Override
//publicvoidrepaint(){
////TODOAuto-generatedmethodstub
////TODOAuto-generatedmethodstub
////
//();
////Threadthread=newThread(newRunnable(){
////@Override
////publicvoidrun(){
//////TODOAuto-generatedmethodstub
////try{
////SaveToFile();
////}catch(IOExceptione){
//////TODOAuto-generatedcatchblock
////();
////}
////}
////});
////();
////
////ImageIconbg=newImageIcon("");
////if(bg!
=null){
////if(label!
=null)
////(label);
////label=newJLabel(bg);
////(0,0,(),());
////(label);
////();
////}
////
//}
privatevoidSaveToFile()throwsIOException{
//TODOAuto-generatedmethodstub
BufferedImagebimg=newBufferedImage(),(),;
Graphics2Dg2d=();
(g2d);
(bimg,"jpg",newFile(""));
}
@Override
publicvoidmousePressed(MouseEvente){
Pointp=newPoint(),());
cur=newInstance();
(p);
(cur);
}
@Override
publicvoidmouseDragged(MouseEvente){
Pointp=newPoint(),());
(p);
repaint();
}
@Override
publicvoidmouseReleased(MouseEvente){
Pointp=newPoint(),());
(p);
repaint();
}
@Override
publicvoidmouseMoved(MouseEvente){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseClicked(MouseEvente){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseEntered(MouseEvente){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseExited(MouseEvente){
//TODOAuto-generatedmethodstub
}
}
packagewinpaint;
publicclassWinToolBarextendsJToolBarimplementsActionListener{
publicstaticStringCommand="矩形";
JButtonbtn1,btn2,btn3;
//windowsPaintwinp;
publicWinToolBar(windowsPaintwinP){
btn1=newJButton("矩形");
btn2=newJButton("圆形");
btn3=newJButton("线");
(btn1);
(btn2);
(btn3);
((ActionListener)this);
((ActionListener)this);
((ActionListener)this);
//=winP;
JComboBoxcom=newJComboBox();
("红色");
("蓝色");
("黑色");
(newItemListener(){
@Override
publicvoiditemStateChanged(ItemEvente){
//TODOAuto-generatedmethodstub
}
});
(com);
}
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
JButtonbtn=(JButton)();
;
Command=();
}
}
3、实验结果