⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myframe.java

📁 JAVA编写的俄罗斯方块游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -