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

📄 drawpicturepanel.java

📁 java 做的Applet 画板程序。功能齐全强大
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


class DrawPicturePanel extends JPanel 
{	
    String command;
	private JPanel panel;
	private int orgX,orgY,endX,endY,resultX,resultY,z;
	private double u;		
	public DrawPicturePanel()
	{
		ActionListener draw = new draw();
		//ActionListener drawrect = new drawrect();
		//ActionListener drawcir = new DrawCir();
		//ActionListener drawoval = new DrawOval();
		setLayout(new BorderLayout());
		//panel.setLayout(new GridLayout(1,3));
		panel = new JPanel();
		addButton("line",draw);
		addButton("rectangle",draw);
		addButton("circular",draw);
		addButton("oval",draw);		
		setSize(800,800);
		add(panel, BorderLayout.CENTER);	
					
	}
	
	
	private void addButton(String name,ActionListener e)
	{
		JButton button = new JButton(name);
		button.addActionListener(e);
		panel.add(button);	
	}
	
	
	private class draw implements ActionListener
	{
		public void actionPerformed(ActionEvent event)
		{   		    
		    command = event.getActionCommand();   
		    panel.addMouseListener(new PanelMouse());
		}
     }     
     
	class PanelMouse extends MouseAdapter
    {
	     public void mousePressed(MouseEvent e)
		 {
		    orgX = e.getX();
			orgY = e.getY();
		 }
		 public void mouseReleased(MouseEvent e)
		 {
		    endX = e.getX();
		    endY = e.getY();
		    resultX = endX - orgX;
		    resultY = endY - orgY;
		    Graphics g = panel.getGraphics();
		    if (command.equals("line"))
		    {
			    g.setColor(Color.GREEN);
			    g.drawLine(orgX, orgY, endX,endY);				        
		    }
		    else if (command.equals("rectangle"))
		    {
		        g.setColor(Color.RED);
				if(resultX>0&resultY>0)
				g.drawRect(orgX,orgY,resultX,resultY);		
				else if(resultX<0&resultY>0)
				g.drawRect(endX, orgY, Math.abs(resultX), resultY);
				else if(resultX>0&resultY<0)
				g.drawRect(orgX, endY, resultX,Math.abs(resultY));
				else if(resultX<0&resultY<0)
				g.drawRect(endX, endY, Math.abs(resultX),Math.abs(resultY));	
		    }
		    else if (command.equals("circular"))
		    {
		    	g.setColor(Color.ORANGE);
				u = Math.sqrt((endX-orgX)*(endX-orgX)+(endY-orgY)*(endY-orgY))/2*(Math.sqrt(2)/2);
			    z = (int)u;			
				if(resultX>0&resultY>0)
				g.drawArc(orgX,orgY,2*z,2*z,0,360);		
				else if(resultX<0&resultY>0)
				g.drawArc(endX, orgY, 2*z, 2*z,0,360);
				else if(resultX>0&resultY<0)
				g.drawArc(orgX, endY, 2*z,2*z,0,360);
				else if(resultX<0&resultY<0)
				g.drawArc(endX, endY, 2*z,2*z,0,360);	
		    }
		    else 
		    {
		    	g.setColor(Color.BLUE);
				if(resultX>0&resultY>0)
				g.drawOval(orgX,orgY,resultX,resultY);		
				else if(resultX<0&resultY>0)
				g.drawOval(endX, orgY, Math.abs(resultX), resultY);
				else if(resultX>0&resultY<0)
				g.drawOval(orgX, endY, resultX,Math.abs(resultY));
				else if(resultX<0&resultY<0)
				g.drawOval(endX, endY, Math.abs(resultX),Math.abs(resultY));
		    }
		  }
    } 		
}

⌨️ 快捷键说明

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