Problemas com manipulação do componente JRadioButton

1 resposta
J

Boa noite pessoal !! Estou com um problema quanto à manipulação do componente JRadioButton. Desejo criar um frame com diversos Radios, cada um significando um exercício de uma lista. O problema é que não estou conseguindo uma maneira de identificar um Radio entre tantos outros. Por exemplos, são 30 componentes no frame, quando clique em um Radio qualquer, deve retornar o seu nome, mas sempre retorna o nome do último Radio inserido no frame. Vejam o código :

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

import javax.swing.*;


public class Gepeto implements ActionListener
{
	
	JCheckBox []h = new JCheckBox[30];
	
	public static void main(String[] args) 
	{
		Gepeto gpt = new Gepeto();
		gpt.grafico();
	}
	
	public void grafico()
	{
		JFrame frame = new JFrame();
		JPanel pnorte = new JPanel();
		JPanel panel = new JPanel();
		JLabel label = new JLabel("Lista de Exercícios");
		ButtonGroup group = new ButtonGroup();
		
		for(int i = 0; i <= 29; i++)
		{
			h[i] = new JCheckBox();
			h[i].addActionListener(this);
			h[i].setText("Exercicio "+(i + 1));
			h[i].setSelected(false);
			group.add(h[i]);
			panel.add(h[i]);

		}
	
		
		label.setFont(new Font("Serif",Font.BOLD,18));
		pnorte.add(label);
		
		frame.getContentPane().add(BorderLayout.NORTH, pnorte);
		frame.getContentPane().add(BorderLayout.CENTER, panel);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		frame.setLocation(300,150);
		frame.setSize(395,340);
		frame.setVisible(true);

	}
	
	public void actionPerformed(ActionEvent arg0)
	{
		for(int i = 0; i <= 29; i++)
		{
			if(h[i].isSelected())
			{
				JOptionPane.showMessageDialog(null, h[i].getText());
			}

		}
	}

	
}

1 Resposta

J

Galera peço desculpas, mas o sono me impediu de pensar em algo óbvio. :oops:

O código acima já foi editado e corrigido. Espero que sirva como boa fonte de consulta para quem tiver problemas.

Criado 5 de outubro de 2012
Ultima resposta 5 de out. de 2012
Respostas 1
Participantes 1