📄 myframe.java
字号:
package MiniGame;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
import javax.swing.JLabel;
import com.borland.jbcl.layout.VerticalFlowLayout;
import java.awt.CardLayout;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.*;
import javax.swing.*;
import java.awt.Font;
import java.awt.GridBagLayout;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
public class MyFrame extends JFrame {
final int HEIGHT=500,WIDTH=620;
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
BorderLayout borderLayout2 = new BorderLayout();
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenu1 = new JMenu();
static JMenuItem jMI_start = new JMenuItem();
static JMenuItem jMI_pause = new JMenuItem();
static JMenuItem jMI_stop = new JMenuItem();
JMenuItem jMI_exit = new JMenuItem();
static JMenu jMenu2 = new JMenu();
JMenu jMenu3 = new JMenu();
JMenu jMenu4 = new JMenu();
JRadioButtonMenuItem jRBM_easy = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBM_middle = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBM_dif = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBM_large = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBM_small = new JRadioButtonMenuItem();
JMenu jMenu5 = new JMenu();
JMenuItem jMenuItem5 = new JMenuItem();
JMenuItem jMenuItem6 = new JMenuItem();
JMenuItem jMenuItem7 = new JMenuItem();
ButtonGroup bG_level = new ButtonGroup();
ButtonGroup bG_size = new ButtonGroup();
JPanel jPanel1 = new JPanel();
JPanel jPanel12 = new JPanel();
//////////////////////////////////////////////////////
JLabel jLabel_player = new JLabel();
JLabel jLabel_level_text = new JLabel();
JLabel jLabel_level = new JLabel();
JLabel jLabel_grade_text = new JLabel();
JLabel jLabel_grade = new JLabel();
JLabel jLabel_next_text = new JLabel();
////////////////////////////////////////////////////////////////////
JLabel jLabel2_player = new JLabel();
JLabel jLabel2_level_text = new JLabel();
JLabel jLabel2_level = new JLabel();
JLabel jLabel2_grade_text = new JLabel();
JLabel jLabel2_grade = new JLabel();
JLabel jLabel2_next_text = new JLabel();
////////////////////////////////////////////////////////////////////
VerticalFlowLayout verticalFlowLayout1 = new VerticalFlowLayout();
static boolean isLarge = true;
MyWindowLsn mylsn = new MyWindowLsn();
public MyPanel_next jPanel_next = new MyPanel_next();
public MyPanel_next jPanel_next2 = new MyPanel_next();
public MyPanel gamePanel = new MyPanel();
public MyPanel gamePanel2=new MyPanel();
static boolean isDownPressed = false;
static boolean isDownPressed2 = false;
JPanel jPanel2 = new JPanel();
JPanel jPanel22 = new JPanel();
////////////////////////////////////////////////////////
JPanel jPanelAnother = new JPanel();
///////////////////////////////////////////////////////
boolean doubleMode=false;
public int levelset = 1;
JMenu jMenu6 = new JMenu();
JRadioButtonMenuItem jRadioButtonMenuItem1 = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRadioButtonMenuItem2 = new JRadioButtonMenuItem();
ButtonGroup buttonGroup1 = new ButtonGroup();
public MyFrame() {
try {
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
jbInit();
this.bG_level.add(jRBM_easy);
this.bG_level.add(jRBM_middle);
this.bG_level.add(jRBM_dif);
this.bG_size.add(jRBM_large);
this.bG_size.add(jRBM_small);
this.buttonGroup1.add(jRadioButtonMenuItem1);
this.buttonGroup1.add(jRadioButtonMenuItem2);
contentPane.setFocusable(true);
contentPane.requestFocus();
this.addWindowListener(mylsn);
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
this.setJMenuBar(jMenuBar1);
///////////////////////////////////////////////////////////
setSize(new Dimension(HEIGHT, WIDTH));
if(doubleMode)
{ setSize(new Dimension(HEIGHT*2, WIDTH));
jPanelAnother.setPreferredSize(new Dimension(HEIGHT, WIDTH));
jPanelAnother.setLayout(borderLayout2);
jPanelAnother.add(jPanel12, java.awt.BorderLayout.WEST);
jPanelAnother.add(gamePanel2, java.awt.BorderLayout.CENTER);
// jPanelAnother.add(jPanel22, java.awt.BorderLayout.NORTH);
contentPane.add(jPanelAnother, java.awt.BorderLayout.EAST);
jPanel12.add(jLabel2_player, null);
jPanel12.add(jLabel2_level_text, null);
jPanel12.add(jLabel2_level, null);
jPanel12.add(jLabel2_grade_text, null);
jPanel12.add(jLabel2_grade, null);
jPanel12.add(jLabel2_next_text, null);
jPanel12.add(jPanel_next2);
jLabel2_player.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
jLabel2_player.setForeground(Color.red);
jLabel2_player.setText("玩家二");
jLabel2_level_text.setText("游戏等级:");
jPanel12.setLayout(verticalFlowLayout1);
jLabel2_level.setForeground(Color.red);
jLabel2_level.setHorizontalAlignment(SwingConstants.CENTER);
jLabel2_level.setText("1");
jLabel2_grade_text.setText("当前得分:");
jLabel2_grade.setForeground(new Color(0, 0, 249));
jLabel2_grade.setHorizontalAlignment(SwingConstants.CENTER);
jLabel2_grade.setText("0");
jLabel2_next_text.setText("下一个:");
verticalFlowLayout1.setVgap(20);
jPanel_next2.setLayout(null);
gamePanel2.setLayout(null);
jPanel22.setPreferredSize(new Dimension(10, 40));
jPanel_next2.setPreferredSize(new Dimension(100, 80));
}
/////////////////////////////////////////////////////
setTitle("MiniGame");
jMenu1.setText("Game");
jMI_start.setText("Start");
jMI_start.addActionListener(new MyFrame_jMI_start_actionAdapter(this));
jMI_pause.setEnabled(false);
jMI_pause.setText("Pause");
jMI_pause.addActionListener(new MyFrame_jMI_pause_actionAdapter(this));
jMI_stop.setText("Stop");
jMI_stop.setEnabled(false);
jMI_stop.addActionListener(new MyFrame_jMI_stop_actionAdapter(this));
jMI_exit.setText("Exit");
jMI_exit.addActionListener(new MyFrame_jMI_exit_actionAdapter(this));
jMenu2.setText("Setting");
jMenu3.setText("Level");
jMenu4.setText("Size");
jRBM_easy.setSelected(true);
jRBM_easy.setText("Easy");
jRBM_easy.addActionListener(new MyFrame_jRBM_easy_actionAdapter(this));
jRBM_middle.setText("Middle");
jRBM_middle.addActionListener(new MyFrame_jRBM_middle_actionAdapter(this));
jRBM_dif.setText("Diffcult");
jRBM_dif.addActionListener(new MyFrame_jRBM_dif_actionAdapter(this));
jRBM_large.setSelected(true);
jRBM_large.setText("Large");
jRBM_large.addActionListener(new MyFrame_jRBM_large_actionAdapter(this));
jRBM_small.setText("Small");
jRBM_small.addActionListener(new MyFrame_jRBM_small_actionAdapter(this));
jMenu5.setText("haha");
jMenuItem5.setText("Records");
jMenuItem5.addActionListener(new MyFrame_jMenuItem5_actionAdapter(this));
jMenuItem6.setText("Help");
jMenuItem6.addActionListener(new MyFrame_jMenuItem6_actionAdapter(this));
jMenuItem7.setText("About JTetris");
//////////////////////////////////////////////////////////////
contentPane.setPreferredSize(new Dimension(0, 0));
contentPane.addKeyListener(new MyFrame_contentPane_keyAdapter(this));
///////////////////////////////////////////////////////////
jLabel_player.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
jLabel_player.setForeground(Color.red);
jLabel_player.setText("玩家一");
jLabel_level_text.setText("游戏等级:");
jPanel1.setLayout(verticalFlowLayout1);
jLabel_level.setForeground(Color.red);
jLabel_level.setHorizontalAlignment(SwingConstants.CENTER);
jLabel_level.setText("1");
jLabel_grade_text.setText("当前得分:");
jLabel_grade.setForeground(new Color(0, 0, 249));
jLabel_grade.setHorizontalAlignment(SwingConstants.CENTER);
jLabel_grade.setText("0");
jLabel_next_text.setText("下一个:");
verticalFlowLayout1.setVgap(20);
////////////////////////////////////////////////
jPanel_next.setLayout(null);
gamePanel.setLayout(null);
//////////////////////////////
jPanel2.setPreferredSize(new Dimension(10, 40));
jMenu6.setText("模式");
jRadioButtonMenuItem1.setText("单人");
jRadioButtonMenuItem1.addActionListener(new
MyFrame_jRadioButtonMenuItem1_actionAdapter(this));
jRadioButtonMenuItem2.addActionListener(new
MyFrame_jRadioButtonMenuItem2_actionAdapter(this));
jMenuBar1.add(jMenu1);
jMenuBar1.add(jMenu2);
jMenuBar1.add(jMenu5);
jMenuBar1.add(jMenu6);
jPanel_next.setPreferredSize(new Dimension(100, 80));
jMenu1.add(jMI_start);
jMenu1.add(jMI_pause);
jMenu1.add(jMI_stop);
jMenu1.addSeparator();
jMenu1.add(jMI_exit);
jMenu2.add(jMenu3);
jMenu2.add(jMenu4);
jMenu3.add(jRBM_easy);
jMenu3.add(jRBM_middle);
jMenu3.add(jRBM_dif);
jMenu4.add(jRBM_large);
jMenu4.add(jRBM_small);
jMenu5.add(jMenuItem5);
jMenu5.add(jMenuItem6);
jMenu5.addSeparator();
jMenu5.add(jMenuItem7);
contentPane.add(jPanel1, java.awt.BorderLayout.WEST);
jPanel1.add(jLabel_player, null);
jPanel1.add(jLabel_level_text, null);
jPanel1.add(jLabel_level, null);
jPanel1.add(jLabel_grade_text, null);
jPanel1.add(jLabel_grade, null);
jPanel1.add(jLabel_next_text, null);
jPanel1.add(jPanel_next);
contentPane.add(gamePanel, java.awt.BorderLayout.CENTER);
contentPane.add(jPanel2, java.awt.BorderLayout.NORTH);
jMenu6.add(jRadioButtonMenuItem1);
jMenu6.add(jRadioButtonMenuItem2);
}
public void jMI_exit_actionPerformed(ActionEvent actionEvent) {
System.exit(1);
}
public void jRBM_large_actionPerformed(ActionEvent e) {
isLarge = true;
gamePanel.InitPanel();
if(doubleMode) gamePanel2.InitPanel();
}
public void jRBM_small_actionPerformed(ActionEvent e) {
isLarge = false;
gamePanel.InitPanel();
if(doubleMode) gamePanel2.InitPanel();
}
public void contentPane_keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_S)
isDownPressed = false;
}
public void contentPane_keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:
gamePanel.nextHowTo();
gamePanel.changeShape();
gamePanel.repaint();
break;
case KeyEvent.VK_W:
if(doubleMode)
{ gamePanel2.nextHowTo();
gamePanel2.changeShape();
gamePanel2.repaint();
}
break;
case KeyEvent.VK_DOWN:
isDownPressed = true;
gamePanel.nextHowTo();
repaint();
break;
case KeyEvent.VK_S:
if(doubleMode)
{ isDownPressed2 = true;
gamePanel2.nextHowTo();
repaint();
}
break;
case KeyEvent.VK_LEFT:
boolean flagL=true;
for (int i = 0; i < 4; i++) {
if(gamePanel.current[i].x<=0)
{ flagL=false;break;}
if(gamePanel.grid[gamePanel.current[i].x-1][gamePanel.current[i].y+1]>0)
{flagL=false;break;}
}
if(flagL==true)
for (int i2 = 0; i2 < 4; i2++) {
gamePanel.current[i2].x--;
}
repaint();
break;
case KeyEvent.VK_A:
if(doubleMode)
{
boolean flagL2 = true;
for (int i = 0; i < 4; i++) {
if (gamePanel2.current[i].x <= 0) {
flagL2 = false;
break;
}
if (gamePanel2.grid[gamePanel.current[i].x -1][gamePanel.current[i].y + 1] > 0) {
flagL2 = false;
break;
}
}
if (flagL2 == true)
for (int i2 = 0; i2 < 4; i2++) {
gamePanel2.current[i2].x--;
}
repaint();
}
break;
case KeyEvent.VK_RIGHT:
boolean flagR=true;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -