要怎么将画板上的画图保存好
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) {
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 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;
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 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 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;
}
}