JFrame中的内容不断更新时控制台报错。。。

运行代码已经可以比较正常实现功能了,但是控制台会一直在报错,求解啊。。。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;

public class Random extends Thread implements MouseListener {

Frame f;
JPanel jp = new JPanel();
JLabel jl = new JLabel();
String []room={"207","208","233","322","323","324","325","326","327","423","601","711","502③","504④","529③","531①","602③"};
ArrayList<String> al = new ArrayList<String>();
boolean isclick = false;
int a=0,b=0;

public void lunchFreme(){
    for(int x=0;x<room.length;x++){
        al.add(room[x]);
    }
    f=new Frame();
    f.addMouseListener(this);

    f.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            isclick=false;
            super.windowClosing(e);
            System.exit(0);
        }
    });
    f.setTitle("Random");
    f.setBackground(Color.white);
    f.setVisible(true);
    f.setSize(500,300);
    f.setLocation(300,200);
    jl.setText("Ready!");
    jl.setFont(new Font("Dialog",   1,   50));
    jl.setHorizontalTextPosition(SwingConstants.CENTER);
    jl.setVerticalTextPosition(SwingConstants.CENTER);
    jl.setSize(500,300);
    jp.add(jl);
    f.add(jp);
}

public void run(){
    do{
        if(a>=al.size()) a=0;
        jl.setText(al.get(a));
        jp.repaint();
        jp.add(jl);
        f.add(jp);
        a++;
        try {
            Thread.sleep(50);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }while (isclick!=false);

}

public void mouseClicked(MouseEvent e) {
    b++;
    if (!isclick) {
        isclick=true;
        new Thread(this).start();
    }
    else{
        isclick=false;
        System.out.println(a);
        al.remove(a-1);
        if (al.size()==0) {
            System.out.println("抽签结束!");
        }
    }
}

@Override
public void mousePressed(MouseEvent e) {

}

@Override
public void mouseReleased(MouseEvent e) {

}

@Override
public void mouseEntered(MouseEvent e) {

}

@Override
public void mouseExited(MouseEvent e) {

}

public static void main(String args[]){

    Random mf = new Random();
    mf.lunchFreme();
}

}
运行代码已经可以比较正常实现功能了,但是控制台会一直在报错,求解啊。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值