[英]“Cannot find symbol” Error in Java. Something with my ArrayList is off
[英]Cannot find symbol in Java. [Compiler error]
SlotMachine.java:76: cannot find symbol
symbol : variable slot
location: class MyFrame.pullHandler
碼
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
class SlotMachine
{
public static void main(String [] args)
{
MyFrame f = new MyFrame();
}
}
class MyFrame extends JFrame
{
JTextField r1 = new JTextField("---",10);
JTextField r2 = new JTextField("---",10);
JTextField r3 = new JTextField("---",10);
JButton pull = new JButton("Pull");
JLabel result = new JLabel("Not Played Yet");
public MyFrame()
{
JTextField [] slot = new JTextField[3];
slot[0] = new JTextField("---",10);
slot[1] = new JTextField("---",10);
slot[2] = new JTextField("---",10);
JPanel panel = new JPanel();
setVisible(true);
setSize(400, 400); //replace with pack();?
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Slot Machine - By: ");
add(panel);
panel.add(slot[0]);
panel.add(slot[1]);
panel.add(slot[2]);
panel.add(pull);
panel.add(result);
pull.addActionListener(new pullHandler());
}
class pullHandler implements ActionListener
{
public void actionPerformed(ActionEvent pull)
{
int ban = 0;
int cher = 0;
int mel = 0;
int plays = 0;
for(int count=0; count< 3; count++) //repeats three times, giving three random values
{
Random rand = new Random();
int numRoll = rand.nextInt(3); //0,1,2 values
if (numRoll==0)
{
//Bannana
slot[0].setBackground(Color.yellow); //I want to replace the 1 with the counts, so if it is the second loop, it would set it for the second box.
ban++;
/*slot[count]*/r1.setText("Banana");
}
if (numRoll==1)
{
//cherry
r2.setBackground(Color.red);
cher++;
r2.setText("Cherry");
}
if (numRoll==2)
{
//Melon
r3.setBackground(Color.green);
mel++;
r3.setText("Melon");
}
}
plays++;
result.setText("Played " + plays); //why don't I keep getting new values when I click "Pull"?
}
}
}
我正在嘗試在我的pullhandler類中使用slot []數組而不是r1 / r2 / r3。 我嘗試通讀舊帖子,但找不到與我的問題完全相同的內容。
在構造函數的范圍之外,變量slot
沒有任何意義。 如果希望通過其他方法對其進行訪問,請使用JTextField
變量將slot
移至字段級別。
JTextField [] slot = new JTextField[3];
應該在MyFrame()
構造函數外部創建
為了使其對pullHandler
可用,您還應該嘗試將slot
為static
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.