摇滚剪刀不起作用

时间:2018-04-20 14:52:36

标签: java

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

public class stensax extends JFrame implements ActionListener{
    JPanel p1=new JPanel();
    JPanel p2=new JPanel();
    JPanel p3=new JPanel();
    int x;
    int y;
JButton knapp[] = new JButton [6];

public stensax(){
    p1.setLayout(new GridLayout(2,1));
    setBackground(Color.lightGray);
    p2.setLayout(new GridLayout(2,4,6,6));
    p3.setLayout(new BorderLayout());
    JLabel label1 = new JLabel("Ditt val");
    JLabel label2 = new JLabel("Datorns val");
    JLabel label3 = new JLabel("Resultat");
    label3.setHorizontalAlignment(JLabel.CENTER);
    label3.setVerticalAlignment(JLabel.CENTER);

    for (int i = 0; i<6; i++){
        knapp[i] = new JButton();
       /* knapp[i].addActionListener(this); */
        knapp[i].setFont(new Font("Sans Serif", Font.BOLD, 16));
        knapp[i].setForeground(Color.blue);
        p2.add(knapp[i]);
    }

    p2.add(label1, 0,0);
    p2.add(label2, 4,4);

    knapp[0].setLabel("Sten");
    knapp[1].setLabel("Sax");
    knapp[2].setLabel("Påse");
    knapp[3].setLabel("Sten");
    knapp[4].setLabel("Sax");
    knapp[5].setLabel("Påse");

    p3.add(label3);

    p3.setVisible(true);
    p2.setVisible(true);
    p1.setVisible(true);
    setVisible(true);


    add(p1);
    p1.add(p2,"North");
    p1.add(p3,"South");
    pack(); 
}
    public void actionPerformed(ActionEvent e){ 

        if(e.getSource()==knapp[0]) {
            x=1;    
            logic();
        }

        if(e.getSource()==knapp[1]) {
            x=2;
            logic();
        }

        if(e.getSource()==knapp[2]) {
            x=3;
            logic();
        }


    }

    public void logic(){
         int y = (int)(Math.random() * ((3 - 1) + 1)) + 1;

        if( y == x){
            JLabel label3 = new JLabel("Det blev oavgjort!");
            label3.setText("ok");
            p3.add(label3);
        }

        else if( x == 1 && y == 2){
            JLabel label3 = new JLabel("Du vann!");
            label3.setText("ok");
            p3.add(label3);
        }

        else if( x == 1 && y == 3){
            JLabel label3 = new JLabel("Du förlorade!");
            label3.setText("ok");
            p3.add(label3);
        }

        else if( x == 2 && y == 1){
            JLabel label3 = new JLabel("Du förlorade!");
            label3.setText("ok");
            p3.add(label3);
        }

            if( x == 2 && y == 3){
            JLabel label3 = new JLabel("Du vann!");
            label3.setText("ok");
            p3.add(label3);
        }

        else if( x == 3 && y == 1){
            JLabel label3 = new JLabel("Du vann!");
            label3.setText("ok");
            p3.add(label3);
        }

        else if( x == 3 && y == 2){
            JLabel label3 = new JLabel("Du förlorade!");
            label3.setText("ok");
            p3.add(label3);
        }

    }


public static void main (String[] args){
    stensax fc = new stensax ();
}


}

所以我正在尝试为学校项目制作一个石头剪刀游戏,这似乎不起作用。按下按钮时没有任何反应。根据游戏结果改变标签是有意义的。不确定我在这里做错了什么。我是初学者,如果这是显而易见的话,那就很抱歉。提前谢谢!

1 个答案:

答案 0 :(得分:0)

取消注释此行/* knapp[i].addActionListener(this); */以接收操作事件。