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 ();
}
}
所以我正在尝试为学校项目制作一个石头剪刀游戏,这似乎不起作用。按下按钮时没有任何反应。根据游戏结果改变标签是有意义的。不确定我在这里做错了什么。我是初学者,如果这是显而易见的话,那就很抱歉。提前谢谢!
答案 0 :(得分:0)
取消注释此行/* knapp[i].addActionListener(this); */
以接收操作事件。