Ok, allora ho fatto così:
codice:
String [] sel1={"M","F"};
JComboBox boxGen=new JComboBox(sel1);
boxGen.addItemListener(c.getGenere());
String [] sel2={"0-9","10-15","16-20","21-50","51-over"};
JComboBox boxEta=new JComboBox(sel2);
boxEta.addItemListener(c.getEta());
JComboBox boxCat=new JComboBox(); //devo inserire le categorie che però sono prese in lettura dal file
boxGen.addItemListener(c.getCategoria());
JButton b1=new JButton("add");
JPanel headerLine1=new JPanel();
headerLine1.add(boxGen);
headerLine1.add(boxCat);
headerLine1.add(boxEta);
headerLine1.add(b1);
header.add(headerLine1);
add(header,BorderLayout.NORTH);
Mentre nel controller ho inserito
codice:
private ItemListener genere;
private ItemListener eta;
private ItemListener categoria;
private Action create;
private String gen;
private String cat;
private String et;
....
public ControllerMain(final ModelMain m, final ViewMain v) {
this.m=m;
this.v=v;
.....
genere=new ItemListener(){
@Override
public void itemStateChanged(ItemEvent e) {
gen=e.getItem().toString();
categoria=new ItemListener(){
@Override
public void itemStateChanged(ItemEvent e) {
cat=e.getItem().toString();
}};
eta=new ItemListener(){
@Override
public void itemStateChanged(ItemEvent e) {
et=e.getItem().toString();
}};
create=new AbstractAction(){
@Override
public void actionPerformed(ActionEvent e) {
b=m.creaBiglietto(cat, et, gen);//crea un biglietto e lo riceve
//crea una tabella nel view con i dati del biglietto
v.addRows(b.getGruppo(), b.getID(), b.getCategoria(), b.getGenere(), b.getPrice());
}};
}
public ItemListener getGenere() {
return genere;
}
public ItemListener getEta() {
return eta;
}
public ItemListener getCategoria() {
return categoria;
}
public Action getCreate(){
return create;
}
public Action getRemove(){
return remove;
}
Il dubbio principale è se sto usando l'itemlistener in maniera corretta, in quanto non succede nulla quando faccio create!