Java ActionListener只响应一次

Java ActionListener只响应一次,java,swing,timer,actionlistener,japplet,Java,Swing,Timer,Actionlistener,Japplet,我用Java创建了一个基本的轮盘赌轮盘,我有一个JButton和一个旋转轮盘的ActionListener。一旦我按下按钮一次,它就会按预期工作 问题是:我第二次按下JButton时,它就不起作用了。我将发布我的全部代码,供任何想确切了解我意思的人使用 奖励积分:任何可以帮助我完成以下工作的人都可以获得奖励积分: 在您单击按钮或将窗口置于背景并将其恢复后,按钮才会出现 由于某种原因,旋转总是落在红色上。我有一个名为randomSpin()的方法,它生成的int值是21或22,该方法确实有效,但

我用Java创建了一个基本的轮盘赌轮盘,我有一个JButton和一个旋转轮盘的ActionListener。一旦我按下按钮一次,它就会按预期工作

问题是:我第二次按下JButton时,它就不起作用了。我将发布我的全部代码,供任何想确切了解我意思的人使用

奖励积分:任何可以帮助我完成以下工作的人都可以获得奖励积分:

  • 在您单击按钮或将窗口置于背景并将其恢复后,按钮才会出现
  • 由于某种原因,旋转总是落在红色上。我有一个名为randomSpin()的方法,它生成的int值是21或22,该方法确实有效,但由于某些原因,在spin方法中使用它时,它总是旋转21次
车轮制造者
“奖励积分:”…如果你能形成一个问题。你的问题是什么?为什么要编写小程序?如果是由于老师的特殊要求,请参考。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import java.lang.*;

public class WheelBuilder extends JApplet{

public int total = 1000, score, Tbet = 100, last; 
public JLabel winning;
public JButton spin, Abet, Sbet;
RouletteWheel wheel = new RouletteWheel();
Graphics page;
public Color color;

public void init()
{
    resize(540,600);
    spin = new JButton("SPIN!");
    spin.addActionListener(new spinListener());
    Container cp = getContentPane();
    cp.setVisible(true);
    cp.setBackground((Color.GREEN).darker().darker());
    Abet = new JButton("+BET+");
    Abet.addActionListener(new aListener());
    Sbet = new JButton("-BET-");
    Sbet.addActionListener(new sListener());

    cp.add(Sbet);
    cp.add(spin);
    cp.add(Abet);
    cp.setLayout(new FlowLayout(270, 5, 525));
}
public void paint(Graphics page)
{
    page.setColor((Color.GREEN).darker().darker());
    page.fillRect(0, 0, 1000, 1000);
    setBackground((Color.GREEN).darker().darker());
    wheel.paintWheel(page, wheel.getStatus());
    page.setColor(Color.BLACK);
    page.drawString("TOTAL: "+total, 400, 50);
    page.drawString("Current Bet: "+Tbet, 400, 25);
    page.drawString("Last Spin:", 50, 25);
    page.setColor(Color.WHITE);
    page.fillOval(260, 75, 20, 20);
    page.fillRect(50, 35, 60, 25);
    page.setColor(color);
    page.drawString(""+last, 70, 52);
}
public class spinListener implements ActionListener
{
    Timer tm = new Timer(100, this);
    int count = 0;
    int countEnd = randomSpin();

    public void actionPerformed(ActionEvent e)
    {
        tm.start();
        changeWheel();
        if (wheel.getStatus())
        {
            color = Color.RED;
            last = (int)(Math.random()*7)*2+1;
        }
        else 
        {
            color = Color.BLACK;
            last = (int)(Math.random()*7)*2+2;
        }
    }
    public void changeWheel()
    {
        int countEnd = randomSpin();
        if (count <= countEnd)
        {
            wheel.setStatus(!(wheel.getStatus()));
            repaint();
            count++;
        }

    }
    public int randomSpin()
    {
        return ((int)(Math.random()*2)+21);
    }

}
public class aListener implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        if (Tbet <= total-50)
        {
            Tbet+=50;
        }
        last = 0;
        repaint();
    }
}
public class sListener implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        if (Tbet > 50)
        {
            Tbet-=50;
        }
        last = 0;
        repaint();
    }
}
}
import javax.swing.JApplet;
import java.awt.*;

public class RouletteWheel extends JApplet {

public boolean status;

public void paintWheel(Graphics page, boolean status)
{
    if (status){
        setBackground(Color.green);
        page.setColor(Color.orange.darker().darker());
        page.fillOval(20, 20, 500, 500);
        page.setColor(Color.WHITE);
        page.drawOval(40, 40, 460, 460);
        page.setColor(Color.BLACK);
        int[] xback = {0+70,0+70,30+70,90+70,160+70,240+70,310+70,370+70,400+70,400+70,370+70,310+70,240+70,160+70,90+70,30+70};
        int[] yback = {240+70,160+70,90+70,30+70,0+70,0+70,30+70,90+70,160+70,240+70,310+70,370+70,400+70,400+70,370+70,310+70};
        page.fillPolygon(xback, yback, 16);

        int[] xvals = {0+70,0+70,200+70,30+70,90+70,200+70,160+70,240+70,200+70,310+70,370+70,200+70,400+70,400+70,200+70,370+70,310+70,200+70,240+70,160+70,200+70,90+70,30+70,200+70};
        int[] yvals = {240+70,160+70,200+70,90+70,30+70,200+70,0+70,0+70,200+70,30+70,90+70,200+70,160+70,240+70,200+70,310+70,370+70,200+70,400+70,400+70,200+70,370+70,310+70,200+70};
        page.setColor(Color.BLACK);
        page.setColor(Color.RED);
        page.fillPolygon(xvals, yvals, 24);

        page.setColor(Color.orange.darker().darker());
        page.fillOval(140, 140, 260, 260);
        page.setColor(Color.lightGray);
        page.fillOval(220, 220, 100, 100);
        page.setColor(Color.GRAY);
        page.fillOval(240, 240, 60, 60);
        page.setColor(Color.DARK_GRAY);
        page.fillOval(260, 260, 20, 20);

        page.setColor(Color.WHITE);
        page.drawOval(100, 100, 340, 340);
        page.drawOval(110, 110, 320, 320);

    }
    if (!status)
    {
        setBackground(Color.green);
        page.setColor(Color.orange.darker().darker());
        page.fillOval(20, 20, 500, 500);
        page.setColor(Color.WHITE);
        page.drawOval(40, 40, 460, 460);
        page.setColor(Color.RED);
        int[] xback = {0+70,0+70,30+70,90+70,160+70,240+70,310+70,370+70,400+70,400+70,370+70,310+70,240+70,160+70,90+70,30+70};
        int[] yback = {240+70,160+70,90+70,30+70,0+70,0+70,30+70,90+70,160+70,240+70,310+70,370+70,400+70,400+70,370+70,310+70};
        page.fillPolygon(xback, yback, 16);

        int[] xvals = {0+70,0+70,200+70,30+70,90+70,200+70,160+70,240+70,200+70,310+70,370+70,200+70,400+70,400+70,200+70,370+70,310+70,200+70,240+70,160+70,200+70,90+70,30+70,200+70};
        int[] yvals = {240+70,160+70,200+70,90+70,30+70,200+70,0+70,0+70,200+70,30+70,90+70,200+70,160+70,240+70,200+70,310+70,370+70,200+70,400+70,400+70,200+70,370+70,310+70,200+70};
        page.setColor(Color.BLACK);
        page.fillPolygon(xvals, yvals, 24);

        page.setColor(Color.orange.darker().darker());
        page.fillOval(140, 140, 260, 260);
        page.setColor(Color.lightGray);
        page.fillOval(220, 220, 100, 100);
        page.setColor(Color.GRAY);
        page.fillOval(240, 240, 60, 60);
        page.setColor(Color.DARK_GRAY);
        page.fillOval(260, 260, 20, 20);

        page.setColor(Color.WHITE);
        page.drawOval(100, 100, 340, 340);
        page.drawOval(110, 110, 320, 320);

    }
}
public boolean getStatus()
{
    return status;
}
public void setStatus(boolean s)
{
    status = s;
}
}