求各位大佬看看,我这个要怎么将画图板内的画的东西保存成文件

要怎么将画板上的画图保存好

package com;
![这个是用于清屏的白板图片](https://img-blog.csdnimg.cn/20191114235901778.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ByaW50ZjY5Ng==,size_16,color_FFFFFF,t_70)

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class wind extends JFrame {
	String array_paint[][];
	public static void main(String [] args)
	   {
		   wind wi= new wind();
		   wi.makewindow();
	   }
	

	   public void makewindow()
	   {
		   this.setTitle("画图板");
			this.setSize(600, 600);
			this.setLocationRelativeTo(null);
			this.setDefaultCloseOperation(3);
			this.setLayout(new FlowLayout());
			
		 
			
		    JPanel panel = (JPanel)this.getContentPane();
			panel.setOpaque(false);
			this.setBackground(Color.WHITE);

			JMenuBar bar = new JMenuBar();
			JMenu menu;
			JMenuItem item,item1;
			item=new JMenuItem("打开图片");
			item1=new JMenuItem("保存图片");
			menu=new JMenu("文件");
			bar.add(menu);
			menu.add(item);
			menu.add(item1);
			this.setJMenuBar(bar);
			windlistener dl = new windlistener();
            item.addActionListener(new ActionListener(){
				

				@Override
				public void actionPerformed(ActionEvent e) {
					//System.out.printf("123");
					dl.open();
				}
			});
            item1.addActionListener(new ActionListener(){
				

				@Override
				public void actionPerformed(ActionEvent e) {
					System.out.printf("123");

					JFileChooser addChooser=new JFileChooser(".");
					 addChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
					 addChooser.setMultiSelectionEnabled(true);
					 int returnval=addChooser.showDialog(jf, "保存位置");
					 if(returnval==JFileChooser.APPROVE_OPTION)
		                {
		                    String str=addChooser.getSelectedFile().getPath();
		                    targetfoleder.setText(str);
		                }
				}
			});
			
			String[] shapeArray = { "画笔","刷子","橡皮","清屏","直线", "矩形","填充矩形", "圆","填充圆","圆角矩形","填充圆角矩形"};

					for (int i = 0; i < shapeArray.length; i++) {
						JButton button = new JButton(shapeArray[i]);
						button.setPreferredSize(new Dimension(150,20));
						button.addActionListener(dl);
						this.add(button);
						
					}
					

					
					JLabel large = new JLabel("输入线条大小:");
					this.add(large);
					JTextField largenumber = new JTextField("5");
					largenumber.setPreferredSize(new java.awt.Dimension(200,30));
					this.add(largenumber);
					dl.setParameter1(largenumber, this);
					

					
					Color [] colorbow={Color.BLACK,Color.BLUE,Color.GREEN,Color.red,Color.ORANGE,Color.pink,Color.yellow,Color.gray};
					for (int i = 0; i < colorbow.length; i++) {
						JButton button = new JButton();
						button.setBackground(colorbow[i]);
						button.setPreferredSize(new Dimension(30,30));
						button.addActionListener(dl);
						this.add(button);
						
					}

	
			
			this.setVisible(true);
					
					
					Graphics g=this.getGraphics();
					
					
					dl.setG(g);
					dl.setG2(g);
					this.addMouseListener(dl);
					this.addMouseMotionListener(dl);
					
					
	   }
}
package com;

import java.awt.*;
import java.awt.Canvas;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;




public class windlistener extends MouseAdapter  implements ActionListener,ImageObserver{

	// 

		private String shape="Line";
		private Color color = Color.black;
		private int large=5;
		//private ImageFileChooser fileChooser = new ImageFileChooser();
		private Graphics2D g2;
		private Graphics g ;
		BufferedImage bi;

		


		public void setG(Graphics g){
	    	this.g=g;
	    }
	    public void setG2(Graphics g2){
		this.g2 = (Graphics2D)g2;
		}   
		ImageIcon image = new ImageIcon(this.getClass().getResource("0003.JPG"));
	    Image I=image.getImage();
	    
	    private JTextField textName1;
		private wind wi;
		
		public void setParameter1(JTextField textName, wind wi) {
			this.textName1 = textName;
			this.wi = wi;
			}
		private int x1,y1,x2,y2;
		//private Font f=new Font("Times",Font.BOLD,50);
 
		
		
	    public void actionPerformed(ActionEvent e){
	    	if(!"".equals(e.getActionCommand())){
	    		shape=e.getActionCommand();
	    	}else{
	    		JButton button=(JButton)e.getSource();
	    		color = button.getBackground();
	    	}
	    			
	    }

	    public void mousePressed(MouseEvent e){
	      x1=e.getX();
	      y1=e.getY();
	      g.setColor(color);
	      this.large=Integer.parseInt(this.textName1.getText());
	      this.g2.setStroke(new BasicStroke(large));
	    }
	  /*  public void save(){
	    	Dimension image=this.Canvas.getsize();
	    }*/

	    public void mouseReleased(MouseEvent e){
	    	x2 = e.getX();
	    	y2 = e.getY();
	    	switch (this.shape)
	    	{case"直线":
	    		g.drawLine(x1, y1, x2, y2);
	    	    break;
	    	case"矩形": 
	    		g.drawRect(x1, y1, Math.abs(x1-x2),Math.abs(y1-y2));
	    	    break;
	    	case"圆":  
	    		g.drawOval(x1, y1, Math.abs(x1-x2),Math.abs(y1-y2));
	            break;
	    	case"填充矩形":    
	    		g.fillRect(x1, y1, Math.abs(x1-x2), Math.abs(y1-y2));
	    	    break;
	    	case"圆角矩形":  
	    		g.drawRoundRect(x1, y1,Math.abs(x1-x2),  Math.abs(y1-y2), 30, 30);
	    	    break;
	    	case"填充圆角矩形": 
	    		g.fillRoundRect(x1, y1,Math.abs(x1-x2),  Math.abs(y1-y2),30, 30);
	    	    break;	    	
	    	case"填充圆": 
	    		g.fillOval(x1, y1, Math.abs(x1-x2),Math.abs(y1-y2));
	    	    break;
	    	case"清屏":
				g2.drawImage(I, 0, 198, 700, 900, null);
	    		break;
	    	}
	    }
	   public void open() {
		    ImageIcon image = new ImageIcon(this.getClass().getResource("0001.JPG"));
		    Image I=image.getImage();
			g2.drawImage(I, 50, 200, 250, 200, null);											
		}
	   /*public void save(){
		   JFileChooser chooser = new JFileChooser();
		   FileNameExtensionFilter filter = new FileNameExtensionFilter( "JPG & GIF Images", "jpg", "gif");
		   chooser.setFileFilter(filter);
		   //int returnVal = chooser.showOpenDialog(getParent());
		   //if(returnVal == JFileChooser.APPROVE_OPTION) {
		   if(chooser.showSaveDialog(null)==JFileChooser.APPROVE_OPTION){
		   File oFile=chooser.getSelectedFile();
		   try {
		   ImageIO.write(bi, "jpg", oFile);
		   }
		   catch (IOException e) {
		   // TODO Auto-generated catch block
		   e.printStackTrace();
		   }

		   }
		   }*/
	   
	    



	  
		public void mouseDragged(MouseEvent e) {
	    	x2 = e.getX();
			y2 = e.getY();
			switch (this.shape){
			case"画笔":g2.drawLine(x1, y1,x2, y2);x1 = x2;y1 = y2;
			break;
			case"刷子":g2.drawRect(x2,y2,5,5);
			break;
			case"橡皮":g2.clearRect(x1, y1, this.large,this.large);x1 = x2;y1 = y2;
			break;
			}
	    }
	    

	    public void mouseExited(MouseEvent e){
	    	
	    }

		@Override
		public boolean imageUpdate(Image img, int infoflags, int x, int y,
				int width, int height) {
			return false;
		}

		

	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值