俄罗斯方块---第一步让小方块移动

让小方块移动(左右移动及下移)

JPanel类

在JPanel里先画一个小方块,由x和y的大小控制小方块的位置

    int x=40;//x,y为小方块的初始位置
    int y=0;
    public NewJPanel() {
        initComponents();
    }
 public void paintComponent(Graphics g)//Java使用Graphics类进行绘图
    {
    super.paintComponent(g);
    g.setColor(Color.red);//将文字,边框或要填充的区域为指定颜色
    g.fill3DRect(x,y, 20, 20,true);//用预先指定的颜色填充圆或椭圆(int x , int y , int width , int height)x:距离左边的距离,y:距离右边的距离
    }

然后想办法改变x,y的大小

Controller类

Controller类中有改变x和y大小的方法

public class Controller {//控制小方块移动
    NewJPanel j;
    Controller(NewJPanel j){//重写构造方法
        this.j=j;
    }
    public void left(){j.x-=20;j.repaint();}//左移,x和y是之前定义过的小方块的位置
    public void right(){j.x+=20;j.repaint();}//右移
    public void down(){j.y+=20;j.repaint();}//下移
    public void turn(){}
}

然后再想办法通过键盘的输入,调用相应的Controller里的改变x和y大小的方法

在JFrame的属性中加一个从键盘中获取信息的方法

private void formKeyPressed(java.awt.event.KeyEvent evt) {                                
        // TODO add your handling code here:
        switch(evt.getKeyCode()){
        case 37:controller.left();break;
        case 39:controller.right();break;
        case 40:controller.down();break;
        case 38:controller.turn();break;
    }

JFrame类

Controller controller;//Controller类
public NewJFrame() {
        initComponents();
        NewJPanel nj=new NewJPanel();//定义一个JPanel
        nj.setSize(200,400);//设置JPanel类
        nj.setLocation(50,50);//设置位置(据左边距离,据上边距离)
        nj.setBackground(Color.yellow);//JPanel背景颜色
        this.getContentPane().add(nj);//向ContenPane这个容器里面加入nj
        controller=new Controller(nj);//创建对象
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值