真的很感謝上一個問題的幫助,但仍然有一些錯誤。我正在製作一款尋寶遊戲,用戶點擊一個gui來嘗試揭示寶箱的位置。我正在使用一個動作監聽器在按鈕上顯示一個藏寶箱的圖像,如果這個位置被找到了,但是這是一個固定的位置,我想隨機化這個。得到一些建議,使用按鈕上的數組和隨機數生成器,然後使用if/else來檢查。有編譯器的錯誤,我會評論下面的代碼。一個好的編碼器可能會在幾秒鐘內挑出我的新手錯誤!陣列和動作監聽器java
import java.awt.*;
import javax.swing.*;
import java.util.Random;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Test extends JFrame {
JLabel label1, label2, label3;
ImageIcon image1, image2, image3, image4, image5;
JTextField textResult;
public static void main(String[] args) {
new Test();
}
public Test(){
this.setSize(700,700);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Treasure Hunt Game");
JPanel thePanel = new JPanel();
thePanel.setLayout(new GridLayout(0,3,0,0));
image1 = new ImageIcon(getClass().getResource("Treasure.jpg"));
image2 = new ImageIcon(getClass().getResource("Pirate.jpg"));
image3 = new ImageIcon(getClass().getResource("sand2.jpg"));
image4 = new ImageIcon(getClass().getResource("emptyhole.jpg"));
image5 = new ImageIcon(getClass().getResource("map.jpg"));
label1 = new JLabel("Click the buttons to find the Treasure!");
label2 = new JLabel(image5);
label3 = new JLabel(image2);
JButton [] buttons = new JButton[9];
buttons[0] = new JButton(image3);
buttons[1] = new JButton(image3);
buttons[2] = new JButton(image3);
buttons[3] = new JButton(image3);
buttons[4] = new JButton(image3);
buttons[5] = new JButton(image3);
buttons[6] = new JButton(image3);
buttons[7] = new JButton(image3);
buttons[8] = new JButton(image3);
thePanel.add(buttons[0]);
thePanel.add(buttons[1]);
thePanel.add(buttons[2]);
thePanel.add(buttons[3]);
thePanel.add(buttons[4]);
thePanel.add(buttons[5]);
thePanel.add(buttons[6]);
thePanel.add(buttons[7]);
thePanel.add(buttons[8]);
thePanel.add(label1);
thePanel.add(label2);
thePanel.add(label3);
this.add(thePanel);
this.setVisible(true);
int treasureLocation = new Random().nextInt(buttons.length);
System.out.println(treasureLocation);
在編譯器,它給了我一個錯誤消息說,它不知道在下面的if else語句中的「按鈕」或「treasureLocation」。
}
public void actionPerformed(ActionEvent evt) {
if (evt.getSource() == buttons[treasureLocation]) {
}
else {
}
}
}
是否打印語句? –
請顯示更多代碼,至少'actionPerformed'的位置 –