簡體   English   中英

在Java中找不到符號。 [編譯器錯誤]

[英]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可用,您還應該嘗試將slotstatic

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM