Salve a tutti... ho scritto questo codice per provare il funzionamento di JRadioButton.
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class ProvaJRadioButton extends JFrame
{
public ProvaJRadioButton()
{
super("Prova");
setSize(150, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
add(panel);
final JRadioButton bott1 = new JRadioButton("prova 1 ");
final JRadioButton bott2 = new JRadioButton("prova 2");
ButtonGroup gruppo = new ButtonGroup();
gruppo.add(bott1);
gruppo.add(bott2);
panel.add(bott1);
panel.add(bott2);
final JButton bottone = new JButton("Prova");
panel.add(bottone);
class ActionListenerBotton implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
ActionListener scelta = null;
if(bott1.isSelected())
scelta = new ActionLister1();
else if(bott2.isSelected())
scelta = new ActionLister2();
bottone.addActionListener(scelta);
}
}
bottone.addActionListener(new ActionListenerBotton());
setVisible(true);
}
class ActionLister1 implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
JFrame frame = new JFrame("Prova 1");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(150, 100);
frame.setVisible(true);
}
}
class ActionLister2 implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
JFrame frame = new JFrame("Prova 2");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(150, 100);
frame.setVisible(true);
}
}
}
class test
{
public static void main(String arg[])
{
ProvaJRadioButton prova = new ProvaJRadioButton();
}
}
Questo codice mi da due problemi:
-il pulsante prova non mi da nessun risultato con un solo clic, lo devo premere per due volte per farmi dare un risultato;
-il secondo problema avviene quando cambio input sui due bottoni; per esempio se nella prima prova premo prova1, e nella seconda premo prova2, il programma mi apre prova1 e prova2 insieme, anche più volte facendo più prove.
Ringrazio tutti in aticipo per le spiegazioni che mi darete