import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;
public class mouse implements ActionListener, WindowListener, MouseMotionListener, MouseListener
{
Frame f;
TextField t=new TextField();
int j;
int x,y;
Graphics g,g_in;
int x1,y1;
BufferedImage i;
Panel p1=new Panel(new GridLayout(2,3));
Button b1=new Button("红色");
Button b2=new Button("黄色");
Button b3=new Button("蓝色");
Button b4=new Button("绿色");
Button b5=new Button("矩形");
Button b6=new Button("圆形");
mouse()
{
t.setEnabled(false);
f=new Frame("画图!");
p1.add(b1);
p1.add(b2);
p1.add(b3);
p1.add(b4);
p1.add(b5);
p1.add(b6);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
f.add(t,BorderLayout.NORTH);
f.add(p1,BorderLayout.EAST);
f.setSize(400,400);
int w=(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int h=(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
f.setLocation((w-400)/2,(h-400)/2);
f.setBackground(Color.ORANGE);
f.setResizable(false);
f.setVisible(true);
f.addWindowListener(this);
f.addMouseListener(this);
f.addMouseMotionListener(this);
this.getG();
}
public void getG()
{
f.addMouseListener(this);
this.g=f.getGraphics();
i=new BufferedImage(f.getWidth(),f.getHeight(),BufferedImage.TYPE_INT_RGB);
g_in=i.getGraphics();
g_in.setColor(Color.white);
g_in.fill3DRect(0,0,i.getWidth(),i.getHeight(),true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
g.setColor(Color.red);
g_in.setColor(Color.red);
}
else if(e.getSource()==b2)
{
g.setColor(Color.yellow);
g_in.setColor(Color.yellow);
}
else if(e.getSource()==b3)
{
g.setColor(Color.blue);
g_in.setColor(Color.blue);
}
else if(e.getSource()==b4)
{
g.setColor(Color.green);
g_in.setColor(Color.green);
}
else if(e.getSource()==b5)
{
j=0;
}
else if(e.getSource()==b6)
{
j=1;
}
}
public static void main(String args[])
{
mouse my=new mouse();
}
public void windowOpened(WindowEvent e) {
}
public void windowClosing(WindowEvent e) {
try
{
ByteArrayOutputStream is=new ByteArrayOutputStream();//创建一个字节类型数据的数据区
JPEGImageEncoder coder=JPEGCodec.createJPEGEncoder(is);
//声明此数据区只能保存JPG格式的数据
coder.encode(i);
//从内存i图片中提取JPG格式数据,保存到数据区
FileOutputStream fo=new FileOutputStream("a.jpg");
byte[] b=is.toByteArray();//将数据提取成字节数组
fo.write(b);//将数据写入a.jpg文件中
fo.close();//关闭文件的写入
f.dispose();
JOptionPane.showMessageDialog(null,"图片已保存为a.jpg,请察看!");
}catch(Exception el){}
}
public void windowClosed(WindowEvent e) {
}
public void windowIconified(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowActivated(WindowEvent e) {
}
public void windowDeactivated(WindowEvent e) {
}
public void mouseDragged(MouseEvent e) {
// TODO: Add your code here
}
public void mouseMoved(MouseEvent e) {
t.setText("X:"+e.getX()+"Y:"+e.getY());
}
public void mouseClicked(MouseEvent e) {
// TODO: Add your code here
}
public void mousePressed(MouseEvent e) {
x=e.getX();y=e.getY();
}
public void mouseReleased(MouseEvent e) {
x1=e.getX();y1=e.getY();
if (j==1)
{
if(x1>=x)
{
if(y1>=y)
{
g.fillOval(x,y,x1-x,y1-y);
g_in.fillOval(x,y,x1-x,y1-y);
}
else if(y1<y)
{
g.fillOval(x,y1,x1-x,y-y1);
g_in.fillOval(x,y1,x1-x,y-y1);
}
}
else if(x1<x)
{
if(y1<y)
{
g_in.fillOval(x1,y1,x-x1,y-y1);
g.fillOval(x1,y1,x-x1,y-y1);
}
else if(y1>=y)
{
g.fillOval(x1,y,x-x1,y1-y);
g_in.fillOval(x1,y,x-x1,y1-y);
}
}}
else if(j==0)
{
if(x1>=x)
{
if(y1>=y)
{
g.fillRect(x,y,x1-x,y1-y);
g_in.fillRect(x,y,x1-x,y1-y);
}
else if(y1<y)
{
g.fillRect(x,y1,x1-x,y-y1);
g_in.fillRect(x,y1,x1-x,y-y1);
}
}
else if(x1<x)
{
if(y1<y)
{
g.fillRect(x1,y1,x-x1,y-y1);
g_in.fillRect(x1,y1,x-x1,y-y1);
}
else if(y1>=y)
{
g.fillRect(x1,y,x-x1,y1-y);
g_in.fillRect(x1,y,x-x1,y1-y);
}
}
}
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
// TODO: Add your code here
}
}
posted on 2006-02-28 19:02
飘忽着的 阅读(319)
评论(1) 编辑 收藏