Sistema trava ao carregar array no actionPerformed, pq?

1 resposta
R

Galera,

Tenho duas classes, essa aqui de baixo faz a criação da tela de um joguinho e a outra (logo abaixo) cria um vetor com os numeros sorteados.

Estou tendo um problema, quando eu clico no botão "Ïniciar Sorteio" o sistema trava e só imprime o número 1 e 2 que coloquei pra depurar o método actionPerformed.

A idéia seria pegar o primeiro valor e jogar em um textfield, mas o sistema para...fica travado ao tentar carregar o array no actionPerformed, valeu !

Alguma dica do que pode estar ocorrendo ?

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class MontaTela extends javax.swing.JFrame {

    private javax.swing.JButton btIniciarSorteio;
    private javax.swing.JButton btProximaBola;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JTextField tfMostraBola;
    private javax.swing.JTextField tfMostraSequencia;
	
    /** Creates new form Find */
    public MontaTela() {
        initComponents();
    }

    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() {
    	//setSize(1800,1600);
        btIniciarSorteio = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        tfMostraBola = new javax.swing.JTextField();
        jPanel2 = new javax.swing.JPanel();
        tfMostraSequencia = new javax.swing.JTextField();
        btProximaBola = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Sistema Rasche de bingo");
        
        btIniciarSorteio.setText("Iniciar Sorteio");

        tfMostraBola.setBackground(new java.awt.Color(224,223,227));
        tfMostraBola.setEditable(false);
        tfMostraBola.setFont(new java.awt.Font("Arial", 1, 48));
        tfMostraBola.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        tfMostraBola.setText("10");
        tfMostraBola.setBorder(null);

        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .add(tfMostraBola, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 751, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel1Layout.createSequentialGroup()
                .add(23, 23, 23)
                .add(tfMostraBola, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(29, Short.MAX_VALUE))
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("N\u00fameros sorteados"));
        jPanel2.setName("");
        tfMostraSequencia.setBackground(new java.awt.Color(224, 223, 227));
        tfMostraSequencia.setEditable(false);
        tfMostraSequencia.setFont(new java.awt.Font("Arial", 1, 36));
        tfMostraSequencia.setForeground(new java.awt.Color(51, 102, 255));
        tfMostraSequencia.setText("01 10");
        tfMostraSequencia.setBorder(null);

        org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .add(tfMostraSequencia, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 739, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2Layout.createSequentialGroup()
                .add(tfMostraSequencia, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE)
                .addContainerGap())
        );

        btProximaBola.setText("Proxima Bola (+)");

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(btIniciarSorteio, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .add(18, 18, 18)
                        .add(btProximaBola)
                        .add(555, 555, 555))
                    .add(layout.createSequentialGroup()
                        .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addContainerGap())
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                        .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addContainerGap())))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(btIniciarSorteio)
                    .add(btProximaBola))
                .add(118, 118, 118)
                .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 38, Short.MAX_VALUE)
                .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        //pack();
        TrataEventos trataEventos = new TrataEventos();
        //trataEventos.setTfCampoTexto(tfMostraBola);
        btIniciarSorteio.addActionListener(trataEventos);        
        setSize(800,600);
        setVisible(true);
    }
    
    public class TrataEventos implements ActionListener {  	
    	public TrataEventos(){}	    		
    	public void actionPerformed(ActionEvent e){
    		if(e.getActionCommand().equals("Iniciar Sorteio")){
    			System.out.println("1");
    			GerenciaAleatorio gera = new GerenciaAleatorio();
    			System.out.println("2");
    			int[] numeros = gera.getListaNumeros();
    			System.out.println("3");
    			tfMostraBola.setText("10");
    			System.out.println("4");
    		}
    	}

    }
    
    
}
import java.util.Random;

public class GerenciaAleatorio {
	
	private final int tam = 91;
	Random rand = new Random(System.currentTimeMillis());
	
	private int[] num = new int[tam];	
	
	public GerenciaAleatorio(){}
	
	public int getNumero(){		
		int i = 0;
		i = rand.nextInt(tam);
		while(existeNumero(i)==true){
			i = rand.nextInt(tam);
		}
		return i;
	}	
	
	public int[] getListaNumeros(){
		for(int i=0;i<num.length;i++){			
			num[i]= getNumero();
		}
		return num;
	}
	
	private boolean existeNumero(int numero){
		for(int i=0;i<num.length;i++){
			if(numero==num[i]){
				return true;
			}
		}
		return false;
	}
	
}
>

1 Resposta

M

Tem algo de errado na sua classe GerenciaAleatorio!!Não gera nada!!

Criado 28 de fevereiro de 2009
Ultima resposta 28 de fev. de 2009
Respostas 1
Participantes 2