📄 mainframe.java
字号:
package eluosi;
import java.awt.event.*;
import javax.swing.*;
public class MainFrame extends JFrame
implements KeyListener
{
JMenuBar menu;
JMenu menu1;
JMenuItem menuitem1;
JMenuItem menuitem2;
JMenuItem menuitem3;
JMenuItem menuitem4;
public MyThread th;
public int i;
public MainFrame()
{
super("俄罗斯方块");
menu = new JMenuBar();
menu1 = new JMenu("游戏");
menuitem1 = new JMenuItem("开始");
menuitem2 = new JMenuItem("暂停");
menuitem3 = new JMenuItem("结束");
menuitem4 = new JMenuItem("退出");
i = 0;
Pane panel = new Pane();
setSize(400, 580);
setResizable(false);
menu1.add(menuitem1);
menu1.add(menuitem2);
menu1.add(menuitem3);
menu1.add(menuitem4);
menu.add(menu1);
setJMenuBar(menu);
menuitem1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
th = new MyThread();
th.start();
}
}
);
menuitem2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
i++;
if(i >= 2)
i = 0;
if(i == 1){
MyThread.start = false;
menuitem2.setText("继续");
}
if(i == 0){
MyThread.start = true;
menuitem2.setText("暂停");
}
}
}
);
menuitem3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
MyThread.start1 = false;
MyThread.isDead = true;
MyThread.SetCruObjZero();
}
}
);
menuitem4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}
);
addKeyListener(this);
setContentPane(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void keyTyped(KeyEvent keyevent)
{
}
public void keyPressed(KeyEvent ke)
{
switch(ke.getKeyCode())
{
default:
break;
case 38:
if(!MyThread.start)
{
MyThread.Level++;
if(MyThread.Level > 14)
MyThread.Level = 0;
MyThread.main.repaint();
} else
{
MyThread.Filp();
}
break;
case 37:
if(!MyThread.start)
{
MyThread.Speed--;
if(MyThread.Speed < 0)
MyThread.Speed = 8;
MyThread.main.repaint();
} else
{
MyThread.Move(-1);
}
break;
case 39:
if(!MyThread.start)
{
MyThread.Speed++;
if(MyThread.Speed > 8)
MyThread.Speed = 0;
MyThread.main.repaint();
} else
{
MyThread.Move(1);
}
break;
case 40:
if(!MyThread.start)
{
MyThread.Level--;
if(MyThread.Level < 0)
MyThread.Level = 14;
MyThread.main.repaint();
} else
{
MyThread.fall();
}
break;
}
}
public void keyReleased(KeyEvent ke)
{
if(ke.getKeyCode() == 40)
MyThread.fall = false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -