Ok, allora ho fatto così:
Mentre nel controller ho inseritocodice: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);
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!

Rispondi quotando