Ciao, considerando il secondo esempio (quello dei JRadioButton), puoi creare una classe che estende JPanel, che contiene degli oggetti che estendono JRadioButton, oltre al titolo ("Confronto Attributo n"). Gli oggetti della sottoclasse di JRadioButton conterranno il valore della votazione (per essere generici, anche se lo potresti ricavare dalla label di ogni radio button). Qualcosa del genere:
Codice PHP:
package gui;
import javax.swing.JRadioButton;
public class VoteRadioButton extends JRadioButton
{
private static final long serialVersionUID = -2719874808524680874L;
private String _text;
private int _value;
public VoteRadioButton(String text, int value)
{
super(text);
_text = text;
_value = value;
}
public String getText()
{
return _text;
}
public int getValue()
{
return _value;
}
}
La classe che contiene i vari VoteRadioButton ha una struttura simile:
Codice PHP:
public class MultiRadioButton extends JPanel
{
private String _question = null;
private List<VoteRadioButton> _buttons = new ArrayList<VoteRadioButton>();
private ButtonGroup _grouper = new ButtonGroup();
.
.
}
dovre _question è il testo associato alla scelta multipla, _buttons è la lista dei VoteRadioButton e _grouper è l'associatore dei radiobutton.
Durante l'inizializzazione crei e aggiungi i VoteRadioButton al MultiRadioButton, utilizzando un GridLayout o meglio un GridBagLayout.
A quel punto crei un metodo in MultiRadioButton per ottenere il button selezionato ed applicargli il metodo getValue() per ottenere il valore numerico associato al bottone (sempre in ottica generica. Potresti ad esempio voler creare un MultiRadioButton con tre VoteRadioButton, con testo-valore del tipo <"Pessimo", 3>, <"Medio", 5>, <"Ottimo", 9>)
A questo punto devi decidere solo i dettagli, perchè la struttura la avresti.
Nella finestra principale dovresti solo aggiungere i vari oggetti MultiRadioButton (ognuno relativo ad una scelta multipla) e creare la logica dell'applicazione.