目录
技术实现:
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); //面板里添加Lable
panel.add(button); //面板里添加按钮
//将窗体转换为容器再添加上面板
frame.getContentPane().add(panel);
frame.setLayout(new FlowLayout(1));//调用流布局,设为0时,每一行的组件将被指定按照左对齐排列
//1是中间布局,2是右对齐排列
}
public static void main(String[] args) {
// TODO Auto-generated method stub
csdn 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);
}
}