📄 example14_15.java
字号:
import java.awt.*;import java.awt.image.*;
import java.awt.event.*;import com.sun.image.codec.jpeg.*;
import java.util.*;import java.io.*;
class PaintCanvas extends Canvas
{ int x=-1,y=-1;
Vector v=new Vector();
BufferedImage image;
Graphics2D g2D;
PaintCanvas()
{
image=new BufferedImage(300,300,BufferedImage.TYPE_INT_RGB);
g2D=image.createGraphics();
//g2D.setColor(Color.white);g2D.fillRect(0,0,300,300);//把背景变成白色
//g2D.setColor(Color.black);
addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{x=(int)e.getX();y=(int)e.getY();
Point p=new Point(x,y);
v.addElement(p);
if(x!=-1&&y!=-1)
{
for(int i=0;i<v.size()-1;i++)
{Point p1=(Point)v.elementAt(i);
Point p2=(Point)v.elementAt(i+1);
g2D.drawLine(p1.x,p1.y,p2.x,p2.y);
}
repaint();
}
}
}
);
addMouseListener(new MouseAdapter()
{public void mouseReleased(MouseEvent e)
{v.removeAllElements();}
}
);
}
public void paint(Graphics g)
{
g.drawImage(image,0,0,this);
}
public void update(Graphics g)
{paint(g);}
}
class WindowCanvas extends Frame implements ActionListener
{
PaintCanvas canvas=new PaintCanvas();
Button button=new Button("save");
WindowCanvas()
{
button.addActionListener(this);
add(button,BorderLayout.NORTH);
add(canvas,BorderLayout.CENTER);
setBounds(100,100,400,400);
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e)
{
try{JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(new FileOutputStream("A.jpg"));
encoder.encode(canvas.image);
}
catch(Exception ee) {}
}
}
public class Example14_15
{ public static void main(String args[])
{new WindowCanvas();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -