codice:
public class GuiPalmare extends JFrame implements ActionListener {
private JButton insTavolo,registra,aggiungiP;
public static JTextField tx1;
public static JScrollPane scrollTable;
public static MyTable tableExtra, tablePrimi;
private JPanel contenitoreTable;
public static MyTableModel modello=null;
public static Scontrino sc=new Scontrino();
int caricato=-1;
public GuiPalmare(){
super("");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setLayout(new BorderLayout());
insTavolo=new JButton("Tavolo n°: ");
tx1=new JTextField(5);
tx1.setEditable(false);
registra=new JButton("Registra");
aggiungiP=new JButton("Aggiungi");
insTavolo.addActionListener(this);
//********************* NORD *********************
JPanel north=new JPanel();
north.add(insTavolo);
north.add(tx1);
this.add(north,BorderLayout.NORTH);
//********************* SUD *********************
JPanel south=new JPanel();
south.setLayout(new BoxLayout(south,BoxLayout.X_AXIS));
south.add(aggiungiP);
south.add(registra);
this.add(south,BorderLayout.SOUTH);
//************ CENTRO *********************
ArrayList<Pietanza> perModelExtra=new ArrayList<Pietanza>();
ArrayList<Pietanza> perModelPrimi=new ArrayList<Pietanza>();
ArrayList<Pietanza> perTable=new ArrayList<Pietanza>(GuiInizioPal.mpartenza.piet.values());
for(Pietanza c:perTable){
if(c.getCategoria().toString().equalsIgnoreCase("EXTRA") && c.getVarie()==false)
perModelExtra.add(c);
else if(c.getCategoria().toString().equalsIgnoreCase("PRIMI") && c.getVarie()==false)
perModelPrimi.add(c);
}
contenitoreTable=new JPanel();
contenitoreTable.setLayout(new BoxLayout(contenitoreTable,BoxLayout.Y_AXIS));
tableExtra = new MyTable(perModelExtra);
tablePrimi = new MyTable(perModelPrimi);
contenitoreTable.add(tableExtra);
contenitoreTable.add(tablePrimi);
}
scrollTable=new JScrollPane(contenitoreTable);
scrollTable.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
this.add(scrollTable,BorderLayout.CENTER);
this.validate();
}
public void actionPerformed(ActionEvent e){
Object bottone=e.getSource();
if(bottone==insTavolo){
GuiSetTavolo set=new GuiSetTavolo(0);
}
}
}
}
questo è il codice di mytable
codice:
public class MyTable extends JTable{
private MyTableModel modelloTable;
public MyTable(ArrayList<Pietanza> arrayP){
Collections.sort(arrayP);
modelloTable = new MyTableModel(arrayP);
setModel(modelloTable);
}
public MyTableModel getModel(){
return modelloTable;
}
}
codice di mytablemodel
codice:
public class MyTableModel extends AbstractTableModel {
//intestazioni delle colonne
String nomeColonne[]={" ","Cod","Desc","Qtà"};
ArrayList<Pietanza> arrayP=new ArrayList<Pietanza>();
public MyTableModel(ArrayList a){
this.arrayP=a;
}
public ArrayList getArray(){
return arrayP;
}
//torna numero colonne
public int getColumnCount()
{
return nomeColonne.length;
}
//torna numero righe
public int getRowCount()
{
return arrayP.size();
}
public Object getValueAt(int row,int col)
{
//seleziono la pietanza
Pietanza p=(Pietanza)arrayP.get(row);
if(col==0)
return "-";
else if(col==1)
return String.valueOf(p.getCodice());
else if(col==2)
return p.getDescrizione();
else if(col==3)//quantita
return String.valueOf(p.getOrdinata());
else{
return "...";
}
}
public void setValueAt(Object val, int row, int col){
Pietanza p=(Pietanza)arrayP.get(row);
if(col==3){
String pippo=String.valueOf(val);
p.setOrdinata(Integer.valueOf(pippo)); //cambio valore
}
fireTableDataChanged();
}
public String getColumnName(int col){
return nomeColonne[col];
}
public boolean isCellEditable(int row,int col){
if(col==0 || col==1 ||col==3)
return true;
else
return false;
}
public void aggiungiRiga(Pietanza piet){
arrayP.add(piet);
int row=arrayP.size()-1;
fireTableRowsInserted(row,row);
}
public void rimuoviRiga(Pietanza piet){
arrayP.remove(piet);
int row=arrayP.size();
fireTableRowsDeleted(0,row);
}
}