Problemas com JComboBox e o "for";

2 respostas
Frantic_Avenger

Olá todo mundo;

Estou querendo usar o JComboBox em um Applet porém estou com um problema:

:shock: Desse jeito não funciona:

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

import javax.swing.JApplet;
import javax.swing.JComboBox;

import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class IMCApplet extends JApplet implements ChangeListener, ActionListener {
    
	private JComboBox listar;
	
	public void init() {
		data();
    }	

	public void data(){
	   
	   String[]dias = new String[31];
	   int aux;
	   
	   for (aux = 1; aux <= 31; aux++){
		   dias[aux] = String.valueOf(aux);
	   }
	   

		listar = new JComboBox(dias);
	    listar.setSelectedIndex(0);
	    listar.addActionListener(this);
	    add(listar);
	}


	public void stateChanged(ChangeEvent arg0) {
		
		
	}

	public void actionPerformed(ActionEvent arg0) {
		
		
	}	
}

:x Desse jeito funciona:

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

import javax.swing.JApplet;
import javax.swing.JComboBox;

import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class IMCApplet extends JApplet implements ChangeListener, ActionListener {
    
	private JComboBox listar;
	
	public void init() {
		data();
    }	

	public void data(){
	   
	   String[]dias = {"1",...,"31"};	//Digitando todos os dias aqui   

		listar = new JComboBox(dias);
	    listar.setSelectedIndex(0);
	    listar.addActionListener(this);
	    add(listar);
	}


	public void stateChanged(ChangeEvent arg0) {
		
		
	}

	public void actionPerformed(ActionEvent arg0) {
		
		
	}	
}

Porém não faço desse segundo jeito (que funciona) pois na hora de implementar o ano seria muito trabalhoso já que quero colocar de 1900 ~ 2010. Com relaçao ao tratamento (31 de fevereiro, 31 de abril,...) irei tratar depois. Se alguém puder me ajudar e dizer oque estou fazendo de errado agradeço :wink: . Obrigado.

2 Respostas

pmlm

for (aux = 1; aux <= 31; aux++){ dias[aux] = String.valueOf(aux); }

A primeira posição do array é a posição 0:

for (aux = 1; aux <= 31; aux++){ dias[aux-1] = String.valueOf(aux); }

Frantic_Avenger

Não acredito que deixei esse erro passar, muito obrigado pmlm.

Código corrigido:

import java.awt.event.ActionEvent;   
import java.awt.event.ActionListener;   
  
import javax.swing.JApplet;   
import javax.swing.JComboBox;   
  
import javax.swing.event.ChangeEvent;   
import javax.swing.event.ChangeListener;   
  
public class IMCApplet extends JApplet implements ChangeListener, ActionListener {   
       
    private JComboBox listar;   
       
    public void init() {   
        data();   
    }     
  
    public void data(){   
         
       String[]dias = new String[31];   
       int aux;   
         
       for (aux = 0; aux <= 30; aux++){   
           dias[aux] = String.valueOf(aux+1);   //Correção de 0 ~ 30 (+1)
       }   
         
  
        listar = new JComboBox(dias);   
        listar.setSelectedIndex(0);   
        listar.addActionListener(this);   
        add(listar);   
    }   
  
  
    public void stateChanged(ChangeEvent arg0) {   
           
           
    }   
  
    public void actionPerformed(ActionEvent arg0) {   
           
           
    }     
}

Obrigado a todos :D

Criado 8 de janeiro de 2010
Ultima resposta 8 de jan. de 2010
Respostas 2
Participantes 2