java编的画板的源代码Word文件下载.docx
- 文档编号:5831326
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:17
- 大小:17.10KB
java编的画板的源代码Word文件下载.docx
《java编的画板的源代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《java编的画板的源代码Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。
工具标记
//toolFlag工具对应表:
//(0--画笔);
(1--橡皮);
(2--清除);
//(3--直线);
(4--圆);
(5--矩形);
Colorc=newColor(0,0,0);
//画笔颜色
BasicStrokesize=newBasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
//画笔粗细
Pointcutflag=newPoint(-1,-1,c,6,con);
//截断标志
VectorpaintInfo=null;
//点信息向量组
intn=1;
FileInputStreampicIn=null;
FileOutputStreampicOut=null;
ObjectInputStreamVIn=null;
ObjectOutputStreamVOut=null;
//*工具面板--画笔,直线,圆,矩形,多边形,橡皮,清除*/
PaneltoolPanel;
Buttoneraser,drLine,drCircle,drRect;
Buttonclear,pen;
ChoiceColChoice,SizeChoice,EraserChoice;
Buttoncolchooser;
Label颜色,大小B,大小E;
//保存功能
ButtonopenPic,savePic;
FileDialogopenPicture,savePicture;
paintboard(Strings)
super(s);
addMouseMotionListener(this);
addMouseListener(this);
paintInfo=newVector();
/*各工具按钮及选择项*/
//颜色选择
ColChoice=newChoice();
ColChoice.add("
black"
);
red"
blue"
green"
ColChoice.addItemListener(this);
//画笔大小选择
SizeChoice=newChoice();
SizeChoice.add("
1"
3"
5"
7"
9"
SizeChoice.addItemListener(this);
//橡皮大小选择
EraserChoice=newChoice();
EraserChoice.add("
13"
17"
EraserChoice.addItemListener(this);
////////////////////////////////////////////////////
toolPanel=newPanel();
clear=newButton("
清除"
eraser=newButton("
橡皮"
pen=newButton("
画笔"
drLine=newButton("
画直线"
drCircle=newButton("
画圆形"
drRect=newButton("
画矩形"
openPic=newButton("
打开图画"
savePic=newButton("
保存图画"
colchooser=newButton("
显示调色板"
//各组件事件监听
clear.addActionListener(this);
eraser.addActionListener(this);
pen.addActionListener(this);
drLine.addActionListener(this);
drCircle.addActionListener(this);
drRect.addActionListener(this);
openPic.addActionListener(this);
savePic.addActionListener(this);
colchooser.addActionListener(this);
颜色=newLabel("
画笔颜色"
Label.CENTER);
大小B=newLabel("
画笔大小"
大小E=newLabel("
橡皮大小"
//面板添加组件
toolPanel.add(openPic);
toolPanel.add(savePic);
toolPanel.add(pen);
toolPanel.add(drLine);
toolPanel.add(drCircle);
toolPanel.add(drRect);
toolPanel.add(颜色);
toolPanel.add(ColChoice);
toolPanel.add(大小B);
toolPanel.add(SizeChoice);
toolPanel.add(colchooser);
toolPanel.add(eraser);
toolPanel.add(大小E);
toolPanel.add(EraserChoice);
toolPanel.add(clear);
//工具面板到APPLET面板
add(toolPanel,BorderLayout.NORTH);
setBounds(60,60,900,600);
setVisible(true);
validate();
//dialogforsaveandload
openPicture=newFileDialog(this,"
FileDialog.LOAD);
openPicture.setVisible(false);
savePicture=newFileDialog(this,"
FileDialog.SAVE);
savePicture.setVisible(false);
openPicture.addWindowListener(newWindowAdapter()
publicvoidwindowClosing(WindowEvente)
{openPicture.setVisible(false);
}
});
savePicture.addWindowListener(newWindowAdapter()
{savePicture.setVisible(false);
addWindowListener(newWindowAdapter()
{System.exit(0);
publicvoidpaint(Graphicsg)
Graphics2Dg2d=(Graphics2D)g;
Pointp1,p2;
n=paintInfo.size();
if(toolFlag==2)
g.clearRect(0,0,getSize().width,getSize().height);
//清除
for(inti=0;
i<
n;
i++){
p1=(Point)paintInfo.elementAt(i);
p2=(Point)paintInfo.elementAt(i+1);
size=newBasicStroke(p1.boarder,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
g2d.setColor(p1.col);
g2d.setStroke(size);
if(p1.tool==p2.tool)
switch(p1.tool)
case0:
//画笔
Line2Dline1=newLine2D.Double(p1.x,p1.y,p2.x,p2.y);
g2d.draw(line1);
break;
case1:
//橡皮
g.clearRect(p1.x,p1.y,p1.boarder,p1.boarder);
case3:
//画直线
Line2Dline2=newLine2D.Double(p1.x,p1.y,p2.x,p2.y);
g2d.draw(line2);
case4:
//画圆
Ellipse2Dellipse=newEllipse2D.Double(p1.x,p1.y,Math.abs(p2.x-p1.x),Math.abs(p2.y-p1.y));
g2d.draw(ellipse);
case5:
//画矩形
Rectangle2Drect=newRectangle2D.Double(p1.x,p1.y,Math.abs(p2.x-p1.x),Math.abs(p2.y-p1.y));
g2d.draw(rect);
case6:
//截断,跳过
i=i+1;
default:
}//endswitch
}//endif
}//endfor
publicvoiditemStateChanged(ItemEvente)
if(e.getSource()==ColChoice)//预选颜色
Stringname=ColChoice.getSelectedItem();
if(name=="
)
{c=newColor(0,0,0);
elseif(name=="
{c=newColor(255,0,0);
{c=newColor(0,255,0);
{c=newColor(0,0,255);
elseif(e.getSource()==SizeChoice)//画笔大小
Stringselected=SizeChoice.getSelectedItem();
if(selected=="
con=1;
size=newBasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
elseif(selected=="
con=3;
{con=5;
{con=7;
{con=9;
elseif(e.getSource()==EraserChoice)//橡皮大小
StringEsize=EraserChoice.getSelectedItem();
if(Esize=="
{Econ=5*2;
elseif(Esize=="
{Econ=9*2;
{Econ=13*2;
{Econ=17*3;
publicvoidmouseDragged(MouseEvente)
Pointp1;
switch(toolFlag){
x=(int)e.getX();
y=(int)e.getY();
p1=newPoint(x,y,c,toolFlag,con);
paintInfo.addElement(p1);
repaint();
p1=newPoint(x,y,null,toolFlag,Econ);
publicvoidmouseMoved(MouseEvente){}
publicvoidupdate(Graphicsg)
paint(g);
publicvoidmousePressed(MouseEvente)
Pointp2;
//直线
p2=newPoint(x,y,c,toolFlag,con);
paintInfo.addElement(p2);
//圆
//矩形
publicvoidmouseReleased(MouseEvente)
Pointp3;
paintInfo.addElement(cutflag);
//eraser
p3=newPoint(x,y,c,toolFlag,con);
paintInfo.addElement(p3);
default:
publicvoidmouseEntered(MouseEvente){}
publicvoidmouseExited(MouseEvente){}
publicvoidmouseClicked(MouseEvente){}
publicvoidactionPerformed(ActionEvente)
if(e.getSource()==pen)//画笔
{toolFlag=0;
if(e.getSource()==eraser)//橡皮
{toolFlag=1;
if(e.getSource()==clear)//清除
toolFlag=2;
paintInfo.removeAllElements();
if(e.getSource()==drLine)//画线
{toolFlag=3;
if(e.getSource()==drCircle)//画圆
{toolFlag=4;
if(e.getSource()==drRect)//画矩形
{toolFlag=5;
if(e.getSource()==colchooser)//调色板
ColornewColor=JColorChooser.showDialog(this,"
调色板"
c);
c=newColor;
if(e.getSource()==openPic)//打开图画
openPicture.setVisible(true);
if(openPicture.getFile()!
=null)
inttempflag;
tempflag=toolFlag;
toolFlag=2;
try{
Filefilein=newFile(openPicture.getDirectory(),openPicture.getFile());
picIn=newFileInputStream(filein);
VIn=newObjectInputStream(picIn);
paintInfo=(Vector)VIn.readObject();
VIn.close();
toolFlag=tempflag;
catch(ClassNotFoundExceptionIOe2)
System.out.println("
cannotreadobject"
catch(IOExceptionIOe)
cannotreadfile"
if(e.getSource()==savePic)//保存图画
savePicture.setVisible(true);
Filefileout=newFile(savePicture.getDirectory(),savePicture.getFile());
picOut=newFileOutputStream(fileout);
VOut=newObjectOutputStream(picOut);
VOut.writeObject(paintInfo);
VOut.close();
cannotwriteobject"
}//endpaintboard
publicclasspb
publicstaticvoidmain(Stringargs[])
{newpaintboard("
画图程序"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 画板 源代码