目录
技术实现:
2.初始化游戏界面;
2.1 什么是游戏界面
2.2 JPanel面板
2.3 流布局管理器【FlowLayout】
2.4 网络布局管理器 【GridLayout】
2.5 边界布局管理器
技术实现:
1.初始化游戏窗口;
2.初始化游戏界面;
3.初始化游戏的说明面板;
4.随机生成下落方块;
5.绘制方块;
6.清除方块;
7.清楚某一行方块,上方方块掉落;
8.刷新清除某一行方块后的界面;
9.键盘控制下落方块的移动方向,形状;
10.判断方块能否下落;
11.实现方块下落速度的变化;
12.游戏的暂停;
2.初始化游戏界面;
2.1 什么是游戏界面
通俗的说就是你进入一款游戏,在屏幕上看到的都属于游戏界面;
2.2 JPanel面板
JPanel也是一个容器类(非顶层容器),主要用于界面布局;
一个界面只能有一个JFrame,但可以有多个JPanel,在JPanel的基础上还可以增加其他组件;
另外,多个JPanel相互独立,互不影响;
温馨提示:
在早期的 Java 版本中,getContentPane()
方法是必要的步骤,因为 Swing 组件不能直接添加到 JFrame
上。但随着 Java SE 5.0 的发布,可以直接在 JFrame
上使用 add()
方法添加组件,使得 getContentPane()
方法的使用变得可选,但仍然推荐使用该方法以确保最佳实践;
在使用 JFrame
创建窗口时,一般不要直接将组件添加到 JFrame
上,应该用 getContentPane()
方法获取内容面板对象后,再对其进行适当的操作;
//将按钮,文本域等组件添加到面板上jpanel.add(jb);jpanel.add(jl);//使用getContentPane()获取内容面板;jframe.getContentPane().add(jpanel);
2.3 流布局管理器【FlowLayout】
这是最基本的布局方式;
class csdn {public void test() {//创建窗体JFrame frame=new JFrame("这是窗体的名字");//建个按钮JButton button=new JButton("登录");//建个Lable标签JLabel lable=new JLabel("这是一个JFrame窗口");//设置窗体可见frame.setVisible(true);frame.setBounds(0,0,600,900);frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//frame.pack();//不固定窗口大小frame.setResizable(false);//固定窗口大小//来个面板JPanel panel=new JPanel(); panel.add(lable); //面板里添加Lablepanel.add(button); //面板里添加按钮//将窗体转换为容器再添加上面板frame.getContentPane().add(panel);frame.setLayout(new FlowLayout(1));//调用流布局,设为0时,每一行的组件将被指定按照左对齐排列//1是中间布局,2是右对齐排列}public static void main(String[] args) {// TODO Auto-generated method stubcsdn c= new csdn();c.test();}
}
2.4 网络布局管理器 【GridLayout】
1.该布局中每个组件大小相同;
2.组件按照从左到右,从上到下的的顺序排列;
3.改变窗体大小,组件大小也会随之改变;
class Demo2{public static void main(String [] args){JFrame jframe=new JFrame("神秘无敌宇宙力量");jframe.setVisible(true);jframe.setBounds(0,0,600,900);jframe.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//jframe.setResizable(false);//jframe.pack();//创建按钮JButton jbutton1=new JButton("青龙");JButton jbutton2=new JButton("白虎");JButton jbutton3=new JButton("朱雀");JButton jbutton4=new JButton("玄武");//直接添加到界面上jframe.add(jbutton1);jframe.add(jbutton2);jframe.add(jbutton3);jframe.add(jbutton4);//分布式管理器jframe.setLayout(new GridLayout(3,2,10,10));}
}
2.5 边界布局管理器
1.不指定布局管理器时,Swing使用的就是边界布局管理器;
2.窗体被划分为东,西,南,北,中五个区域;
class Demo4{public static void main(String[] args) {JFrame jframe=new JFrame("欢迎入坑");jframe.setBounds(0,0,600,900);jframe.setVisible(true);jframe.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//创建按钮JButton button1=new JButton("AA");JButton button2=new JButton("BB");JButton button3=new JButton("CC");JButton button4=new JButton("DD");JButton button5=new JButton("EE");//边界布局管理jframe.add(button1,BorderLayout.EAST);jframe.add(button2,BorderLayout.CENTER);jframe.add(button3,BorderLayout.WEST);jframe.add(button4,BorderLayout.NORTH);jframe.add(button5,BorderLayout.SOUTH);}
}