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

📄 mypaint.java

📁 一个画板 功能比较简单 可以当一个模板 其他功能可以自己添加
💻 JAVA
字号:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.math.*;
import java.util.Vector;


/*
 *
 * @author Alloxa
 */
public class Mypaint extends JFrame implements MouseListener, MouseMotionListener{ 
    private Container container   = getContentPane();
    private JPanel controlPanel   = new JPanel();
    private String shapeName[]    = {"Line","Rectange","Circle","Word"}; 
    private String fontKind[]     = {"Kind1","Kind2","Kind3","Kind4"};
    private String input    = new String();
    private JComboBox drawShape   = new JComboBox(shapeName);
    private JComboBox wordFont    = new JComboBox(fontKind);
    private JButton chooser = new JButton("choose color"); 
   	private JButton addword = new JButton("addword"); 
   	private Font myfont ;
    private Color color = Color.lightGray;
    public static final int LINES = 0;
    public static final int RECTANGE = 1;
    public static final int CIRCLE = 2;
    public static final int WORD = 3;
    int	   mode = LINES;
    int x1,y1;
    int x2,y2;
   
    public Mypaint(){
   		controlPanel.setLayout(
    		new GridLayout(1,fontKind.length));
    	controlPanel.add(drawShape);
    	controlPanel.add(chooser);
    	controlPanel.add(addword);
    	controlPanel.add(wordFont);
    	
    	container.add(controlPanel,BorderLayout.SOUTH);
    	setSize(400,150);
    	setVisible(true);
    	addMouseMotionListener(this);
		addMouseListener(this);
	    drawShape.addItemListener(new ItemListener(){
    		public void itemStateChanged(ItemEvent event){
    			if(event.getStateChange()==ItemEvent.SELECTED)
    				mode = drawShape.getSelectedIndex();
    			}});
    	chooser.addActionListener(new ActionListener(){
    		public void actionPerformed(ActionEvent event){
    			color = JColorChooser.showDialog(Mypaint.this,"choose a color",color);
    			}});
    	addword.addActionListener(new ActionListener(){
    		public void actionPerformed(ActionEvent event){
    			 input=JOptionPane.showInputDialog(input);
    			}});
    	wordFont.addItemListener(new ItemListener(){
    		public void itemStateChanged(ItemEvent event){
    			if(event.getStateChange()==ItemEvent.SELECTED)
    			 if(wordFont.getSelectedIndex()==0)
    			 	myfont = new Font("serif",Font.BOLD,20);
    			 else if(wordFont.getSelectedIndex()==1)
    			 	myfont = new Font("Monospaced",Font.ITALIC,20);
    			 else if(wordFont.getSelectedIndex()==2)
    			 	myfont = new Font("SansSerif",Font.PLAIN,20);
    			 else if(wordFont.getSelectedIndex()==3)
    			 	myfont = new Font("serif",Font.BOLD+Font.ITALIC,20);
    			 	
    			}});
    	setSize(500,500);
	} 
		   
		    
	public void setDrawMode(int mode) {
		switch (mode) {
	 		case LINES:
	   		case RECTANGE:
	    		this.mode = mode;
	    		break;
	    	case CIRCLE:
	    		this.mode = mode;
	    		break;
	    	case WORD:
	    		this.mode = mode;
	    		break;
	  	default:
	    	throw new IllegalArgumentException();
		}
    }
     public void mouseDragged(MouseEvent e) {//没有建立数组||向量 所以这里不能写东西
      /*  e.consume();
        switch (mode) {
            case LINES:
                x2 = e.getX();
                y2 = e.getY();
                break;
            case RECTANGE:
            	x2 = e.getX();
                y2 = e.getY();
            	break;
            case CIRCLE:
            	x2 = e.getX();
                y2 = e.getY();
                break;
            default:
                x1 = e.getX();
                y1 = e.getY();
                break;
        }
        repaint();*/
    }


    public void mousePressed(MouseEvent e) {
        e.consume();
        switch (mode) {
            case LINES:
                x1 = e.getX();
                y1 = e.getY();
                x2 = -1;
                break;
            case RECTANGE:
            	x1 = e.getX();
                y1 = e.getY();
                x2 = -1;
                break;
            case CIRCLE:
                x1 = e.getX();
                y1 = e.getY();
                x2 = -1;
                break;
            default:
                x1 = e.getX();
                y1 = e.getY();
                repaint();
                break;
        }
    }

    public void mouseReleased(MouseEvent e) {
        e.consume();
        x2=e.getX();
        y2=e.getY();
        repaint();
    }

    
	public void mouseMoved(MouseEvent e) {
    }
    
   	public void mouseEntered(MouseEvent e) {
    }

    public void mouseExited(MouseEvent e) {
    }

   	public void mouseClicked(MouseEvent e) {
    }
    
    public void paint(Graphics g) {
		
		switch (mode){
            case LINES:
            	g.setColor(color);
                g.drawLine(x1,y1,x2,y2);  
                break;
            case RECTANGE:
            	g.setColor(color);
            	g.drawRect(x1,y1,x2-x1,y2-y1);
            	break;
            case CIRCLE:
            	g.setColor(color);
            	g.drawOval((x1+x2)/2,(y1+y2)/2,Math.abs(x1-y1),Math.abs(x1-y1));
                break;
            case WORD:
            	g.setColor(color);
            	g.setFont(myfont);
            	g.drawString(input,x1,y1);
            	break;
            default:
                break;
        }
       
    }


}



⌨️ 快捷键说明

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