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

📄 queenframe.java

📁 八皇后游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * QueenFrame.java
 *
 * Created on 2008年3月9日, 下午12:07
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package javaapplication15;





import java.awt.Container;
import java.awt.*;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.LinkedList;
import javaapplication15.DrawQueen;
import javaapplication15.QueenWindowEvent;
import javax.swing.*;
;

/**
 *
 * @author vivi
 */
public class QueenFrame extends JFrame implements ActionListener{
    public String[]strsize={"4*4","5*5","6*6","7*7","8*8","9*9","10*10","11*11","12*12"};
    public int pwidth;
    public static  int  z=0;
    public static int t=0 ;
    public static int pause=1 ;
    public static int remind; 
    public static int count=0; 
    public static int invailable=0; 
    public QueenModel qm;
    public DrawQueen dq;
    public JTextField b2;
    public DrawQueen dq1;
    public Qlabel qb;
    public Qlabel b3;
    public Timer time;
    public JButton b1;
    public File file4=new File("四皇后排行榜");
    public File file5=new File("五皇后排行榜");
    public File file6=new File("六皇后排行榜");
    public File file7=new File("七皇后排行榜");
    public File file8=new File("八皇后排行榜");
    public File file9=new File("九皇后排行榜");
    public File file10=new File("十皇后排行榜");
    public File file11=new File("十一皇后排行榜");
    public File file12=new File("十二皇后排行榜");
    public LinkedList scorelist=null;
    ShowRecord sr=null;
    File gradeFile=null;
    
    public QueenFrame(){
      time=new Timer(1000,new timeListner());                          //创建一个每秒增加的监听器
        this.setTitle("EightQueens");
        qm=new QueenModel(5);
        pwidth=24;
        FrameSize(24,qm);
        this.addWindowListener(new QueenWindowEvent());             //为主窗体添加窗口事件监听器
        Container con=this.getContentPane();
        JPanel panel=new JPanel();
        JPanel panel2=new JPanel();
        JButton b1=new  JButton("开始");
        JButton b5=new  JButton("暂停");
        JButton b6=new  JButton("继续");
        JButton b7=new  JButton("提示");
        b1.addActionListener(new time1Listner());
        b5.addActionListener(new time2Listner());
        b6.addActionListener(new time3Listner());
        b7.addActionListener(new warnListner());
        b2=new  JTextField("时间");
        JLabel b4=new JLabel("分数:");
        b3=new Qlabel(this,"你的得分:");
        panel.setLayout(new GridLayout(1,3));                           //窗体布局管理器北面的标签及文本框
        panel.add(b2);
        panel.add(b4);
        panel.add(b3);
        panel2.setLayout(new GridLayout(1,4));                          //窗体布局管理器南面的按钮       
        panel2.add(b1);
        panel2.add(b5);
        panel2.add(b6);
        panel2.add(b7);
        con.add(panel,BorderLayout.NORTH);
        con.add(panel2,BorderLayout.SOUTH);
        JMenuBar mbar=new JMenuBar();
        this.setJMenuBar(mbar);
        JMenu gameMenu=new JMenu("游戏(g)");                                //创建游戏菜单
        gameMenu.setMnemonic('G');
        mbar.add(makeMenu (gameMenu,new Object[]{"棋盘","显示危险境地","取消危险境地","清盘",null,"退出"},this));
        JMenu lookMenu=new JMenu("记录(R)");
        mbar.add(makeMenu (lookMenu,new Object[]{"四皇后排行榜","五皇后排行榜","六皇后排行榜","七皇后排行榜","八皇后排行榜","九皇后排行榜","十皇后排行榜","十一皇后排行榜","十二皇后排行榜"},this));
        lookMenu.setMnemonic('R');
        JMenu helpMenu=new JMenu("帮助(H)");
        helpMenu.setMnemonic('H');
        mbar.add(lookMenu);
        mbar.add(makeMenu(helpMenu,new Object[]{"关于","介绍"},this));
        
        scorelist=new LinkedList();
        gradeFile=file8;
         if(!file4.exists())
         {
            try{
                FileOutputStream out=new FileOutputStream("四皇后排行榜");
                ObjectOutputStream object_out=new ObjectOutputStream(out);
                object_out.writeObject(scorelist);
                object_out.close();
                out.close();
            }
            catch(IOException e)
            {
            }
         }
            
     if(!file5.exists())
         {
            try{
                FileOutputStream out=new FileOutputStream("五皇后排行榜");
                ObjectOutputStream object_out=new ObjectOutputStream(out);
                object_out.writeObject(scorelist);
                object_out.close();
                out.close();
            }
            catch(IOException e)
            {
            }
         }
    
        if(!file6.exists())
         {
            try{
                FileOutputStream out=new FileOutputStream("六皇后排行榜");
                ObjectOutputStream object_out=new ObjectOutputStream(out);
                object_out.writeObject(scorelist);
                object_out.close();
                out.close();
            }
            catch(IOException e)
            {
            }
         }
    
    if(!file7.exists())
         {
            try{
                FileOutputStream out=new FileOutputStream("七皇后排行榜");
                ObjectOutputStream object_out=new ObjectOutputStream(out);
                object_out.writeObject(scorelist);
                object_out.close();
                out.close();
            }
            catch(IOException e)
            {
            }
         }
    
     if(!file8.exists())
         {
            try{
                FileOutputStream out=new FileOutputStream("八皇后排行榜");
                ObjectOutputStream object_out=new ObjectOutputStream(out);
                object_out.writeObject(scorelist);
                object_out.close();
                out.close();
            }
            catch(IOException e)
            {
            }
         }
    
     if(!file9.exists())
         {
            try{
                FileOutputStream out=new FileOutputStream("九皇后排行榜");
                ObjectOutputStream object_out=new ObjectOutputStream(out);
                object_out.writeObject(scorelist);
                object_out.close();
                out.close();
            }
            catch(IOException e)
            {
            }
         }
         
         if(!file10.exists())
         {
            try{
                FileOutputStream out=new FileOutputStream("十皇后排行榜");
                ObjectOutputStream object_out=new ObjectOutputStream(out);
                object_out.writeObject(scorelist);
                object_out.close();
                out.close();
            }
            catch(IOException e)
            {
            }
         }
        
         if(!file11.exists())
         {
            try{
                FileOutputStream out=new FileOutputStream("十一皇后排行榜");
                ObjectOutputStream object_out=new ObjectOutputStream(out);
                object_out.writeObject(scorelist);
                object_out.close();
                out.close();
            }
            catch(IOException e)
            {
            }
         }
        
         if(!file12.exists())
         {
            try{
                FileOutputStream out=new FileOutputStream("十二皇后排行榜");
                ObjectOutputStream object_out=new ObjectOutputStream(out);
                object_out.writeObject(scorelist);
                object_out.close();
                out.close();
            }
            catch(IOException e)
            {
            }
         }
    }
         
    public JMenu makeMenu(Object parent,Object items[],Object target){              //创建菜单
        JMenu m=null;
        if(parent instanceof JMenu)
             m=(JMenu)parent;
        else if(parent instanceof String)
            m=new JMenu((String)parent);
        else
            return null;
            for(int i=0;i<items.length;i++)
                if(items[i]==null)
                    m.addSeparator();

                else if(items[i]=="棋盘"){
                JMenu jm=new JMenu("棋盘");
                ButtonGroup group=new ButtonGroup();
                JRadioButtonMenuItem rmenu;
                for(int j=0;j<strsize.length;j++){
                    rmenu=makeRadioButtonMenuItem(strsize[j],target);
                    if(j==4)
                        rmenu.setSelected(true);
                    jm.add(rmenu);
                    group.add(rmenu);
                }
                m.add(jm);}
                else 
                    m.add(makeMenuItem(items[i],target));
        return m;
                }
                public JMenuItem makeMenuItem(Object item,Object target){      //创建菜单选项
                    JMenuItem r=null;
                    if(item instanceof String)
                        r=new JMenuItem((String)item);
                    else if(item instanceof JMenuItem)
                        r=(JMenuItem)item;
                    else
                        return null;
                    if(target instanceof ActionListener);
                    r.addActionListener ((ActionListener) target);
                    return r;
                }
    
    
    public JRadioButtonMenuItem makeRadioButtonMenuItem(Object item,Object target){  //创建
        JRadioButtonMenuItem r=null;
        if(item instanceof String)
            r=new JRadioButtonMenuItem((String)item);
       else if(item instanceof JRadioButtonMenuItem)
            r=(JRadioButtonMenuItem)item;
        else
            return null;
        if(target instanceof ActionListener)
            r.addActionListener((ActionListener) target);
        return r;
    }
    /** Creates a new instance of QueenFrame */
   

    public void actionPerformed(ActionEvent e) {    //菜单监听器的相应
        QueenModel qm1;
        String str=e.getActionCommand();
        if(str.equals("4*4")){                         //以4*4为例
            gradeFile=file4;   //输入排行榜的参数,等级
            dq1.setVisible(false);                    //前一个棋盘不可见
            this.pwidth=12;                            //窗体尺寸参数
            qm1=new QueenModel(1);                    //创建QueenModel对象,得到棋盘模式和棋盘尺寸信息
            FrameSize(this.pwidth, qm1);              //创建游戏城个窗体
            this.qm=qm1;                               //设定当前模式

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -