⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ht.java

📁 该压缩文件中共包含16个非常实用的java学习实例
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.image.*;
import java.io.*;
import com.sun.image.codec.jpeg.*;
class ht extends Frame implements ActionListener,MouseListener,KeyListener
{
	private int w;
	private int h;
Color c;
Graphics g;
boolean ht=false;
boolean zy=false;
boolean tc=false;
int xz=0;
int x,y;
String path1=null;
Frame f=new Frame("画图工具");
Button b1=new Button("线");
Button b2=new Button("矩形");
Button b3=new Button("圆");
Button b4=new Button("红");
Button b5=new Button("绿");
Button b6=new Button("蓝");
Button b7=new Button("网格");
Button b8=new Button("清除网格");
Button b9=new Button("刷新");
Button b0=new Button("图片另存为..");
Button b10=new Button("填充");
Button b11=new Button("取消填充");
Panel p1=new Panel();
Panel p2=new Panel();
BufferedImage bi;
Graphics2D gg;
ht()
{
bi=new BufferedImage(400,400,BufferedImage.TYPE_INT_RGB);
gg=bi.createGraphics();
p1.setLayout(new GridLayout(3,3));
p1.add(b1);
p1.add(b2);
p1.add(b3);
p1.add(b4);
p1.add(b5);
p1.add(b6);
p1.add(b7);
p1.add(b8);
p1.add(b9);
p1.add(b0);
p1.add(b10);
p1.add(b11);
f.add(p1,"North");
f.add(p2,"Center");
p2.addKeyListener(this);
p2.addMouseListener(this);
b0.addActionListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
f.setSize(400,400);
double w=Toolkit.getDefaultToolkit().getScreenSize().getWidth();
double h=Toolkit.getDefaultToolkit().getScreenSize().getHeight();
f.setLocation((int)((w-400)/2),(int)((h-400)/2));
f.setVisible(true);
f.setResizable(false);
f.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
}
public void get()
{
c=Color.blue;
g=p2.getGraphics();//获得面板的画笔
//g.setXORMode(Color.white);//在画图有覆盖的地方用白色中和
}
public static void main(String args[])
{
ht my=new ht();
my.get();
}
public void actionPerformed(ActionEvent e)
{
	if(e.getSource()==b0)
	{
		try
		{
			FileDialog fd=new FileDialog(new Frame(),"另存为..",FileDialog.SAVE);
			fd.setVisible(true);
			path1=fd.getDirectory()+fd.getFile();
			FileOutputStream fos=new FileOutputStream(path1);
			BufferedOutputStream bos=new BufferedOutputStream(fos);
			JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(bos);
			encoder.encode(bi);
			bos.close();
		}
		catch(Exception ex)
		{
			System.out.println ("保存失败!");
		}
	}
	if(e.getSource()==b10)
	{
		tc=true;
	}
	if(e.getSource()==b11)
	{
		tc=false;
	}
	
	
 if(e.getSource()==b1)
    {ht=true;
     xz=1;
}
   else if(e.getSource()==b2)
    {
    ht=true;
    xz=2;

    }
   else if(e.getSource()==b3)
   {
     ht=true;
     xz=3;

   }
   else if(e.getSource()==b4)
   {
    c=Color.red;
  
        }
   else if(e.getSource()==b5)
 {   c=Color.green;
 }
   else if(e.getSource()==b6)
   { c=Color.blue;
}
else if(e.getSource()==b7)
{
	for(int i=0;i<=400;i+=20)
	{   
	    gg.setColor(Color.black);
	    g.setColor(Color.black);
		g.drawLine(i,0,i,400);
		g.drawLine(0,i,400,i);
		gg.drawLine(i,0,i,400);
		gg.drawLine(0,i,400,i);
	}
}
else if(e.getSource()==b8)
{
	    
	for(int j=0;j<=400;j+=20)
	{   
	    g.setColor(Color.white);
	    g.setColor(Color.white);
		g.drawLine(j,0,j,400);
		g.drawLine(0,j,400,j);
		gg.drawLine(j,0,j,400);
		gg.drawLine(0,j,400,j);

	}
}
else if(e.getSource()==b9)
{
	gg.setColor(Color.white);
	g.setColor(Color.white);
    g.fillRect(0,0,400,400);
    gg.fillRect(0,0,400,400);
}
}

public void mousePressed(MouseEvent e)
{
 x=e.getX();
 y=e.getY();
}
public void mouseReleased(MouseEvent e)
{
  if(ht==true){
      g.setColor(c);
 	  gg.setColor(c);
  switch(xz){
 	 case 1:{
 		g.drawLine(x,y,e.getX(),e.getY());
 		gg.drawLine(x,y,e.getX(),e.getY());
 	 	 break;
	
 	 	}
  case 2:{
if(zy==true){
	
	if(tc==true)//为真则为填充,为假就画空心
	{
		if(x>e.getX())
		{
			g.fillRect(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			gg.fillRect(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			break;
		}
		else
		{
			g.fillRect(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			gg.fillRect(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			break;		
		}
	}
	else
	{
		if(x>e.getX())
		{
			g.drawRect(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			gg.drawRect(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			break;
		}
		else
		{
			g.drawRect(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			gg.drawRect(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			break;	
		}
	}
}	
else
	{
	if(tc==true)//为真则为填充,为假就画空心
	{
		if(x>e.getX())
		{
			g.fillRect(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			gg.fillRect(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			break;
		}
		else
		{
			g.fillRect(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			gg.fillRect(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			break;		
		}
	}
	else
	{
		if(x>e.getX())
		{
			g.drawRect(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			gg.drawRect(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			break;
		}
		else
		{
			g.drawRect(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			gg.drawRect(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			break;	
		}
	}
	}
}
  case 3:
  {
if(zy==false){
	
	if(tc==true)//为真则为填充,为假就画空心
	{
		if(x>e.getX())
		{
			g.fillOval(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			gg.fillOval(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			break;
		}
		else
		{
			g.fillOval(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			gg.fillOval(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			break;		
		}
	}
	else
	{
		if(x>e.getX())
		{
			g.drawOval(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			gg.drawOval(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			break;
		}
		else
		{
			g.drawOval(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			gg.drawOval(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getY()-y)));
			break;	
		}
	}
}	
else
	{
	if(tc==true)//为真则为填充,为假就画空心
	{
		if(x>e.getX())
		{
			g.fillOval(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			gg.fillOval(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			break;
		}
		else
		{
			g.fillOval(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			gg.fillOval(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			break;		
		}
	}
	else
	{
		if(x>e.getX())
		{
			g.drawOval(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			gg.drawOval(e.getX(),e.getY(),(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			break;
		}
		else
		{
			g.drawOval(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			gg.drawOval(x,y,(int)(Math.abs(e.getX()-x)),(int)(Math.abs(e.getX()-x)));
			break;	
		}
	}
	}
  }
               }
  	}
  }
public void mouseEntered(MouseEvent e)
{}
public void mouseExited(MouseEvent e)
{}
public void mouseClicked(MouseEvent e)
{}


public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==16)
zy=true;
if(e.getKeyCode()==116)
{
	gg.setColor(Color.white);
	g.setColor(Color.white);
    g.fillRect(0,0,400,400);
    gg.fillRect(0,0,400,400);
}
}

public void keyReleased(KeyEvent e)
{
zy=false;
}
public void keyTyped(KeyEvent e)
{} 

}








⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -