为什么会这样? java的

时间:2014-10-11 08:04:21

标签: java

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;

public class sayangeffort extends JFrame{

    public JFrame instruc;
    public JFrame start1;
    public JFrame start2;

    public JPanel sayang;
    public JPanel effort;
    public JPanel inspanel;
    public JPanel startp1;
    public JPanel startp2;

    public JLabel l1;
    public JLabel l2;
    public JLabel point;

    public JButton start;
    public JButton ins;
    public JButton exit;
    public JButton ins1;
    public JButton ins2;
    public JButton ins3;
    public JButton BackA[]=new JButton[13];

    PleaseGumana p=new PleaseGumana();
    public Timer time = new Timer(2000,p);
    public Timer time2=new Timer(2000,p);   

    public static int num1;
    public static int check[]=new int [12];
    public static int j=0,flag;
    public static int pick1,pick2;
    public static int verifyer1=0,verifyer2=0,counter=0, counter2=0,sample=0;
    public static int pointcount=100;


    Random r=new Random();
    Dimension Imagedim;


public sayangeffort(){

    setTitle("Operation X: Memorylord");
    setSize(500,120);
    buildPanel();
    setLayout(new BorderLayout());
    setResizable(false);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    add(sayang);
    add(effort, BorderLayout.SOUTH);

    setVisible(true);
    }

public void buildPanel(){
    sayang=new JPanel();
    l1=new JLabel("Operation X:");
    l2=new JLabel("                                Memorylord");
    l1.setFont(new Font("Algerian", 72,25));
    l2.setFont(new Font("Algerian", 72,25));
    effort=new JPanel();
    start=new JButton("Start");
    ins=new JButton("Instruction");
    exit=new JButton("Exit");
    sayang.setLayout(new GridLayout(2,1));
    effort.setLayout(new GridLayout(1,3));
    sayang.add(l1);
    sayang.add(l2);
    effort.add(start);
    effort.add(ins);
    effort.add(exit);

        exit.addActionListener(new MenuButton());
        start.addActionListener(new MenuButton());
        ins.addActionListener(new MenuButton());

    }

public void buildStart(){

    startp1=new JPanel();
    startp1.setLayout(new GridLayout(4,3));
    startp2=new JPanel();
    point=new JLabel("Points:"+String.valueOf(pointcount));


    for(int i=1;i<13;i++){
    BackA[i]=new JButton("BACK");
    BackA[i].setBackground(Color.GREEN);
    BackA[i].setPreferredSize(Imagedim);
    BackA[i].setFont(new Font("Bodoni MT Black", Font.PLAIN,24));
    BackA[i].addActionListener(new PleaseGumana());
    }

    for(int c=0;c<12;c++){

        do{
        flag=0;
        num1=r.nextInt(13);
        check[c]=num1;

        for(int i=0;i<12;i++){

        if(check[i]==num1)
            flag++;

            }

        }while(num1==0 || flag>1);
        startp1.add(BackA[num1]);
        }

    startp2.add(point);

    }

public class PleaseGumana implements ActionListener{
    public void actionPerformed (ActionEvent e){

if(e.getSource()==BackA[1]){

    if(verifyer1<2){
    BackA[1].setText("12 x 5");
    BackA[1].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=1;

            if(pick1==7){
                BackA[1].setEnabled(false);
                BackA[7].setEnabled(false);
                BackA[1].setBackground(Color.BLACK);
                BackA[7].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;
                counter2++;
                }
            else if(pick1!=7){
                time.start();

                }
        }

    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=1;
    }   
}

if(e.getSource()==BackA[2]){
    if(verifyer1<2){
    BackA[2].setText("45 / 15");
    BackA[2].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=2;

            if(pick1==8){
                BackA[2].setEnabled(false);
                BackA[8].setEnabled(false);
                BackA[2].setBackground(Color.BLACK);
                BackA[8].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;   
                }
            else if(pick1!=8){
                time.start();

                }
        }

    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=2;
    }
}

if(e.getSource()==BackA[3]){
    if(verifyer1<2){
    BackA[3].setText("17 x 8");
    BackA[3].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=3;

            if(pick1==9){
                BackA[3].setEnabled(false);
                BackA[9].setEnabled(false);
                BackA[3].setBackground(Color.BLACK);
                BackA[9].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;   
                }
            else if(pick1!=9){
                time.start();

                }
        }
    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=3;
    }   
}


if(e.getSource()==BackA[4]){
    if(verifyer1<2){
    BackA[4].setText("31 + 14");
    BackA[4].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=4;

            if(pick1==10){
                BackA[4].setEnabled(false);
                BackA[10].setEnabled(false);
                BackA[4].setBackground(Color.BLACK);
                BackA[10].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;   
                }
            else if(pick1!=10){
                time.start();

                }
        }
    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=4;
    }
}


if(e.getSource()==BackA[5]){
    if(verifyer1<2){
    BackA[5].setText("121 - 37");
    BackA[5].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=5;
            if(pick1==11){
                BackA[5].setEnabled(false);
                BackA[11].setEnabled(false);
                BackA[5].setBackground(Color.BLACK);
                BackA[11].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;
                }
        else if(pick1!=11){
            time.start();
            }
        }
    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=5;
    }
}


if(e.getSource()==BackA[6]){
    if(verifyer1<2){
    BackA[6].setText("72 x 2");
    BackA[6].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=6;
            if(pick1==12){
                BackA[6].setEnabled(false);
                BackA[12].setEnabled(false);
                BackA[6].setBackground(Color.BLACK);
                BackA[12].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;
                }
        else if(pick1!=12){
            time.start();
            }   
        }
    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=6;
    }
}

if(e.getSource()==BackA[7]){
    if(verifyer1<2){
    BackA[7].setText("60");
    BackA[7].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=7;
            if(pick1==1){
                BackA[1].setEnabled(false);
                BackA[7].setEnabled(false);
                BackA[1].setBackground(Color.BLACK);
                BackA[7].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;
                }
        else if(pick1!=1){
            time.start();
            }
        }
    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=7;
    }
}

if(e.getSource()==BackA[8]){
    if(verifyer1<2){
    BackA[8].setText("3");
    BackA[8].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=8;
            if(pick1==2){
                BackA[2].setEnabled(false);
                BackA[8].setEnabled(false);
                BackA[2].setBackground(Color.BLACK);
                BackA[8].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;
                }
        else if(pick1!=2){
            time.start();
            }
        }
    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=8;
    }
}

if(e.getSource()==BackA[9]){
    if(verifyer1<2){
    BackA[9].setText("136");
    BackA[9].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=9;
            if(pick1==3){
                BackA[3].setEnabled(false);
                BackA[9].setEnabled(false);
                BackA[3].setBackground(Color.BLACK);
                BackA[9].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;
                }
        else if(pick1!=3){
            time.start();
            }
        }
    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=9;
    }
}

if(e.getSource()==BackA[10]){
    if(verifyer1<2){
    BackA[10].setText("45");
    BackA[10].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=10;
            if(pick1==4){
                BackA[4].setEnabled(false);
                BackA[10].setEnabled(false);
                BackA[4].setBackground(Color.BLACK);
                BackA[10].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;
                }
        else if(pick1!=4){
            time.start();
            }
        }
    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=10;
    }
}

if(e.getSource()==BackA[11]){
    if(verifyer1<2){
    BackA[11].setText("84");
    BackA[11].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=11;
            if(pick1==5){
                BackA[5].setEnabled(false);
                BackA[11].setEnabled(false);
                BackA[5].setBackground(Color.BLACK);
                BackA[11].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;
            }
        else if(pick1!=5){
            time.start();
            }
        }
    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=11;
    }
}

if(e.getSource()==BackA[12]){
    if(verifyer1<2){
    BackA[12].setText("144");
    BackA[12].setBackground(Color.RED);
    }
        if(verifyer1==1){
        verifyer1++;pick2=12;
            if(pick1==6){
                BackA[6].setEnabled(false);
                BackA[12].setEnabled(false);
                BackA[6].setBackground(Color.BLACK);
                BackA[12].setBackground(Color.BLACK);
                verifyer1=0;
                counter=1;counter2++;
            }
        else if(pick1!=6){
            time.start();
            }
        }
    if(verifyer1==0 && counter==0){
        verifyer1++;
        pick1=12;
    }
}




    if(counter==1){counter=0;}
    if(e.getSource()==time && verifyer1==2){
        pointcount--;
        BackA[pick1].setText("BACK");
        BackA[pick1].setBackground(Color.GREEN);
        BackA[pick2].setText("BACK");
        BackA[pick2].setBackground(Color.GREEN);
        verifyer1=0;
        counter=0;
        }

    point.setText("Points:"+String.valueOf(pointcount));


    if(counter2==6){
        start1.dispose();
        buildStart2();
        //setVisible(true);
        }
    /**if(e.getSource()==time2){


        }*/
}
}

public void buildStart2(){

        start2=new JFrame();
        start2.setTitle("Operation X: Memorylord");
        start2.setSize(600,600);
        start2.setDefaultCloseOperation(EXIT_ON_CLOSE);
        start2.setResizable(false);
        start2.setLocationRelativeTo(null);
        start2.setLayout(new BorderLayout());

        start2.setVisible(true);

}

public class MenuButton implements ActionListener{
    public void actionPerformed (ActionEvent e){

    if(e.getSource()==exit){
        System.exit(0);
            }
    if(e.getSource()==start){

        setVisible(false);

        start1=new JFrame();
        start1.setTitle("Operation X: Memorylord");
        start1.setSize(600,600);
        start1.setDefaultCloseOperation(EXIT_ON_CLOSE);
        start1.setResizable(false);
        start1.setLocationRelativeTo(null);
        start1.setLayout(new BorderLayout());
        buildStart();
        start1.add(startp1);
        start1.add(startp2, BorderLayout.SOUTH);

        start1.setVisible(true);
            }
    if(e.getSource()==ins){
        dispose();
        instruc=new JFrame();
        instruc.setTitle("Operation X: Memorylord");
        instruc.setSize(500,600);
        instruc.setDefaultCloseOperation(EXIT_ON_CLOSE);
        instruc.setResizable(false);
        instruc.setLocationRelativeTo(null);
        instruc.setVisible(true);
            }

}
}


public static void main(String args [])throws Exception{

    sayangeffort cc=new sayangeffort();

}
}

这是我的游戏代码,它尚未完成,它没有指令,但尝试播放并完成它,你会看到我的问题,帧不断出现,但我看不出我的代码有什么问题

1 个答案:

答案 0 :(得分:0)

基本上,time是一个永不停止的重复Swing Timer

这意味着虽然counter2等于6 ....

if (counter2 == 6) {
    start1.dispose();
    buildStart2();
    //setVisible(true);
}

它将创建另一个框架......

我建议......