java图形处理

//******************************************//

设计一个在窗体中可上下左右移动的小方块的程序

//******************************************//

public class Example extends JFrame implements ActionListener{

  JButton up = new JButton("向上移动");

  JButton down = new JButton("向下移动");

  JButton left = new JButton("向左移动");

  JBUtton right = new JButton("向右移动");

  MoveCanVas vas = new MoveCanVas();

  Example(){

    setSize(400,400);

    setLoction(500,100);

    setVisible(true);

    JPanel P = new JPanel();

    p.setLayout(new FlowLayout);

    setLayout(new BorderLayout);

    add(P,BorderLayout.SOUTH);

    add(vas,BorderLayout.CENTER);

    P.add(up);P.add(down);P.add(left);P.add(right);

    vlidate();

    left.addActionListener(this);

    right.addActionListener(this);

    up.addActionListener(this);

    down.addActionListener(this);

    addWindowListener(new WindowCloser());

  }

  public void actionPerformed(ActionEvent e){

    if(e.getSource == up)

      vas.moveUp();

    if(e.getSource == down)

      vas.moveDown();

    if(e.getSource == left)

      vas.moveLeft();

    if(e.getSource == right)

      vas.moveRight();

  }

  public static void main(String[] args){

    new Example();

  }  

}

class MoveCanVas extends Canvas{

  int WIDTH = 30, HEIGHT = 30, INC = 10;

  int j,i;

  public void paint(Graphics g){

    g.drawRect(0,0,getSize().width-1,getSize().height-1);

    g.setColor(Color.black);

    g.fillRect(i+2,j+2,WIDTH+2,HEIGHT+2);

    g.fillRect(i,j,WIDTH,HEIGHT); 

  }

  public void moveUp(){

    if(j>0)

      i-=INC;

    else

      j = getSize().height - INC;

    repaint();

}

  public void moveDown(){

    if(j<getSize().height-INC)

      j-=INC;

    else

      j = o;

    repaint();

  }

  public void moveLeft(){

    if(i>0)

      i-=INC;

    else

      i = getSize().width - INC

    repaint();

  }

  public void moveRight(){

    if(i<getSize().width - INC)

      i += INC;

    else

      i = 0;

    repaint();

  }

}

转载于:https://www.cnblogs.com/HeeKo/p/5248962.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值