Java实现简单的绘图软件.docx

上传人:b****1 文档编号:12784994 上传时间:2023-04-22 格式:DOCX 页数:14 大小:158.29KB
下载 相关 举报
Java实现简单的绘图软件.docx_第1页
第1页 / 共14页
Java实现简单的绘图软件.docx_第2页
第2页 / 共14页
Java实现简单的绘图软件.docx_第3页
第3页 / 共14页
Java实现简单的绘图软件.docx_第4页
第4页 / 共14页
Java实现简单的绘图软件.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Java实现简单的绘图软件.docx

《Java实现简单的绘图软件.docx》由会员分享,可在线阅读,更多相关《Java实现简单的绘图软件.docx(14页珍藏版)》请在冰豆网上搜索。

Java实现简单的绘图软件.docx

Java实现简单的绘图软件

Java实现简单的绘图软件

项目效果图:

项目源代码:

importjava.awt.*;

importjava.awt.event.*;

importjava.awt.geom.Ellipse2D;

importjava.awt.geom.Line2D;

importjava.awt.geom.Rectangle2D;

importjava.awt.image.BufferedImage;

importjava.io.File;

importjava.io.IOException;

privatefloatend_y=0;

privatefloatwidth=0;

privatefloatheight=0;

privatefinalintAREA_WIDTH=700;

privatefinalintAREA_HEIGHT=400;

privateLine2D.Floatline;

privateRectangle2D.Floatrect;

privateEllipse2D.Floatellipse;

privateFileimageFile;

BufferedImageimage=newBufferedImage(AREA_WIDTH,AREA_HEIGHT,BufferedImage.TYPE_INT_RGB);

Graphics2Dg2=(Graphics2D)image.getGraphics();

privateJFrameframe=newJFrame("简单手绘程序");

privateDrawPaneldrawArea=newDrawPanel();

JButtonbuttonShowColor=newJButton("");

publicvoidinit(){

g2.fillRect(0,0,AREA_WIDTH,AREA_HEIGHT);

g2.setColor(Color.black);

drawArea.setPreferredSize(newDimension(AREA_WIDTH,AREA_HEIGHT));

drawArea.addMouseMotionListener(newMouseMotionAdapter()

{

publicvoidmouseDragged(MouseEvente)

{

do_mouseDragged(e);

}

});

drawArea.addMouseListener(newMouseAdapter()

{

publicvoidmousePressed(MouseEvente1){

do_mousePressed(e1);

}

publicvoidmouseReleased(MouseEvente)

{

g2.setColor(color);

g2.setStroke(stroke);

endFlag=typeFlag;

drawArea.repaint();

}

publicvoidmouseEntered(MouseEvente){

frame.setCursor(newCursor(Cursor.CROSSHAIR_CURSOR));

}

publicvoidmouseExited(MouseEvente){

frame.setCursor(null);

}

});

frame.add(drawArea);

JMenuBarmb=newJMenuBar();

JMenumenuFile=newJMenu("文件");

JMenuItemmenuItemSave=newJMenuItem("保存");

menuItemSave.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

do_save_actionPerformed(arg0);

}

});

JMenuItemmenuItemOpen=newJMenuItem("打开");

menuItemOpen.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

try{

do_open_actionPerformed(arg0);

}catch(IOExceptione){

//TODO自动生成的catch块

e.printStackTrace();

}

}

});

JMenuItemmenuItemExit=newJMenuItem("退出");

menuItemExit.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

System.exit(0);

}

});

menuFile.add(menuItemSave);

menuFile.add(menuItemOpen);

menuFile.add(menuItemExit);

mb.add(menuFile);

JPanelbuttonPanel=newJPanel();

FlowLayoutlayout=newFlowLayout(FlowLayout.CENTER,20,20);

buttonPanel.setLayout(layout);

buttonPanel.setBackground(Color.gray);

JButtonbuttonDraw=newJButton("绘图");

buttonDraw.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

typeFlag=1;

}

});

buttonPanel.add(buttonDraw);

JButtonbuttonLine=newJButton("直线");

buttonLine.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

typeFlag=2;

}

});

buttonPanel.add(buttonLine);

JButtonbuttonRect=newJButton("矩形");

buttonRect.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

typeFlag=3;

}

});

buttonPanel.add(buttonRect);

JButtonbuttonEllipse=newJButton("椭圆");

buttonEllipse.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

typeFlag=4;

}

});

buttonPanel.add(buttonEllipse);

JButtonbuttonDrop=newJButton("清除");

buttonDrop.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

typeFlag=5;

g2.setColor(Color.white);

g2.fillRect(0,0,AREA_WIDTH,AREA_HEIGHT);

drawArea.repaint();

}

});

buttonPanel.add(buttonDrop);

JButtonbuttonColorChoose=newJButton("选择颜色");

buttonColorChoose.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

do_buttonColorChoose_actionPerformed(arg0);

}

});

buttonPanel.add(buttonColorChoose);

buttonShowColor=newJButton("");

buttonPanel.add(buttonShowColor);

JLabellabel=newJLabel("边框:

");

buttonPanel.add(label);

JComboBoxcombox=newJComboBox();

for(inti=1;i<=36;i++){

combox.addItem(i);

}

combox.addItemListener(newItemListener(){

publicvoiditemStateChanged(ItemEvente){

strokeTemp=Integer.parseInt(e.getItem().toString());

stroke=newBasicStroke(strokeTemp);

}

});

buttonPanel.add(combox);

frame.add(buttonPanel,BorderLayout.SOUTH);

frame.add(mb,BorderLayout.NORTH);

frame.setBackground(Color.gray);

frame.pack();

frame.setVisible(true);

}

publicstaticvoidmain(String[]args)

{

newImageDraw().init();

}

classDrawPanelextendsJPanel

{

publicvoidpaint(Graphicsg)

{

Graphics2Dg2=(Graphics2D)g;

g2.clearRect(0,0,AREA_WIDTH,AREA_HEIGHT);

g2.setColor(color);

g2.setStroke(stroke);

g2.drawImage(image,0,0,null);

if(typeFlag==2){

line=newLine2D.Float(start_x,start_y,end_x,end_y);

g2.draw(line);

}

if(typeFlag==3){

rect=newRectangle2D.Float(start_X,start_Y,width,height);

g2.draw(rect);

}

if(typeFlag==4){

ellipse=newEllipse2D.Float(start_X,start_Y,width,height);

g2.draw(ellipse);

}

if(typeFlag==5){

g2.setColor(Color.white);

g2.fillRect(0,0,AREA_WIDTH,AREA_HEIGHT);

}

}

}

privatevoiddo_save_actionPerformed(ActionEventarg0){

//TODO自动生成的方法存根

JFileChooserchooser=newJFileChooser();

chooser.setSelectedFile(newFile(imageFile.getName()));

intoption=chooser.showSaveDialog(null);

if(option==JFileChooser.APPROVE_OPTION){

Filefile=chooser.getSelectedFile();

try{

ImageIO.write(image,"jpg",file);

}catch(IOExceptione){

//TODO自动生成的catch块

e.printStackTrace();

}

}

}

privatevoiddo_open_actionPerformed(ActionEventarg0)throwsIOException{

//TODO自动生成的方法存根

JFileChooserchooser=newJFileChooser();

chooser.setFileFilter(newFileNameExtensionFilter("图片文件","jpg","jpeg","jif"));

chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

intoption=chooser.showOpenDialog(null);

if(option==JFileChooser.APPROVE_OPTION){

imageFile=chooser.getSelectedFile();

ImagesourceImage=ImageIO.read(imageFile);

g2.drawImage(sourceImage,0,0,sourceImage.getWidth(null),sourceImage.getHeight(null),null);

drawArea.repaint();

}

}

privatevoiddo_buttonColorChoose_actionPerformed(ActionEventarg0){

//TODO自动生成的方法存根

JColorChooserchooser=newJColorChooser();

color=chooser.showDialog(null,"请选取颜色",Color.black);

buttonShowColor.setBackground(color);

}

privatevoiddo_mouseDragged(MouseEvente){

end_x=e.getX();

end_y=e.getY();

width=Math.abs(end_x-start_x);

height=Math.abs(end_y-start_y);

if(end_x<=start_x&&end_y<=start_y){

start_X=start_x-width;

start_Y=start_y-height;

}

if(end_x>start_x&&end_y

start_Y=start_y-height;

start_X=start_x;

}

if(end_x<=start_x&&end_y>=start_y){

start_Y=start_y;

start_X=start_x-width;

}

if(end_x>=start_x&&end_y>=start_y){

start_Y=start_y;

start_X=start_x;

}

if(typeFlag==1){

if(pre_x>0&&pre_y>0)

{

line=newLine2D.Float(pre_x,pre_y,end_x,end_y);

g2.setColor(color);

g2.setStroke(stroke);

g2.draw(line);

}

pre_x=e.getX();

pre_y=e.getY();

drawArea.repaint();

}else{

drawArea.repaint();

}

}

privatevoiddo_mousePressed(MouseEvente1){

//TODO自动生成的方法存根

width=0;

height=0;

start_x=end_x=pre_x=e1.getX();

start_y=end_y=pre_y=e1.getY();

if(endFlag==2){

g2.draw(line);

}

if(endFlag==3){

g2.draw(rect);

}

if(endFlag==4)

{

g2.draw(ellipse);

}

drawArea.repaint();

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1