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());
}
}
}
}