zoukankan      html  css  js  c++  java
  • 画笔程序说明

    //In the last version I have finish the function to write a line ...
    //This version 0.2 will add more fun things...
    
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    
    public class DrawPad extends Frame {
    	IDrawPad idp;
    	JButton b1;
    	JButton b2;
    	JPanel jpl;
    	
    	public void init() {
    		idp=new IDrawPad(this);
    		jpl=new JPanel(new GridLayout(1,2,10,10));
    		b1=new JButton("Black");
    		b2=new JButton("Other");
    		//add(idp);
    		add(idp,BorderLayout.CENTER);
    		add(jpl,BorderLayout.NORTH);
    		jpl.add(b1);
    		jpl.add(b2);
    		b1.addActionListener(idp);
    		idp.init();
    		idp.setBackground(Color.magenta);
    		this.setBackground(Color.white);
    		this.setVisible(true);
    		addWindowListener(new WindowAdapter(){
    
    			@Override
    			public void windowClosing(WindowEvent e) {
    				System.exit(0);
    			}
    			
    		});
    	}
    	
    	public static void main(String args[]) {
    		new DrawPad().init();
    	}
    }
    
    class IDrawPad extends JPanel implements ActionListener{
    	DrawPad dp;
    	IDrawPad(DrawPad dp) {
    		this.dp=dp;
    		
    	}
    	Color c=new Color(0, 150, 150);
    	Point Frond=new Point(0,0);
    	Point Back=new Point(0,0);
    	Image tem;
    	int i=1;
    	boolean s_s;
    	@SuppressWarnings("deprecation")
    	public void actionPerformed(ActionEvent e) {
    		if(i%4==3) {
    			dp.b1.setLabel("CYAN");
    			c=Color.cyan;
    			dp.b1.setBackground(c);
    			i++;
    //System.out.println(i);
    		}
    		
    		else if(i%4==2){
    			dp.b1.setLabel("Black");
    			c=Color.black;
    			dp.b1.setBackground(c);
    
    			i++;
    //System.out.println(i);
    		}
    		else if(i%4==1) {
    			dp.b1.setLabel("RED");
    			c=Color.red;
    			dp.b1.setBackground(c);
    
    			i++;
    //System.out.println(i);
    		}
    		else if(i%4==0) {
    			dp.b1.setLabel("BLUE");
    			c=Color.blue;
    			dp.b1.setBackground(c);
    
    			i++;
    //System.out.println(i);
    		}		
    	}
    	public void init() {
    		
    		
    		setBounds(100,100,700,550);
    		setBackground(Color.orange);
    		setVisible(true);
    		this.addMouseMotionListener(new MouseE());
    		this.addMouseListener(new MouseE());
    		
    	}
    
    	public void update(Graphics g) {
    		if(tem==null) {
    			tem=this.createImage(700, 550);
    		}
    		Graphics tg=tem.getGraphics();
    		paint(tg);
    		g.drawImage(tem, 0, 0, null);
    	}
    
    	public void paint(Graphics g) {
    		g.setColor(c);
    		g.drawLine(Back.x, Back.y, Frond.x, Frond.y);
    		Back=Frond;
    	}
    
    }
    
    class MouseE extends MouseMotionAdapter implements MouseListener {
    	IDrawPad y;
    	@Override
    	public void mouseClicked(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void mousePressed(MouseEvent e) {
    		y=(IDrawPad)e.getSource();
    //System.out.println(y.Back);
    		y.Back=e.getPoint();	
    	}
    	@Override
    	public void mouseReleased(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void mouseEntered(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void mouseExited(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	public void mouseDragged(MouseEvent e) {
    		y=(IDrawPad)e.getSource();
    		y.Frond=e.getPoint();
    		y.repaint();
    	}
    	
    }
    

    1.在最初,我直接在DrawPad上面作画,然后不断的update()这个画面....这样这个画面其实都是一个画板.但是实际中,我们只需要在一个画板区域作画...其他地方放置一个按键等功能...

    2.所以我们需要在主窗口中添加一个可以画画的组件.也就是拥有paint()方法的一个组件...我们发现JPanel中有这个方法....所以我们新建一个IDrawPad从JPanel中继承...



  • 相关阅读:
    C#趣味程序---车牌号推断
    使用 C# 开发智能手机软件:推箱子(十四)
    【Oracle错误集锦】:ORA-12154: TNS: 无法解析指定的连接标识符
    java中你确定用对单例了吗?
    linux tty设置详解
    tty linux 打开和设置范例
    C和C++之间库的互相调用
    Android 编译参数 LOCAL_MODULE_TAGS
    pthread_once 和 pthread_key
    Android系统root破解原理分析
  • 原文地址:https://www.cnblogs.com/jackhub/p/3147244.html
Copyright © 2011-2022 走看看