Ciao!! Ok scusami mi sono spiegato male
Allora ti posto il codice così forse sono più chiaro:
Questo è il mio modello principale: (poi ci sono altre 2 classi esterne Room e Prenotazioni)
codice:
public class BookingModel extends AbstractTableModel {
private List<Room> rooms;
private List<Prenotazioni> prenotazioni;
public BookingModel() {
rooms=new ArrayList<Room>();
prenotazioni=new ArrayList<Prenotazioni>();
try{
File filePrenotazioni=new File("sale.csv");
BufferedReader reader=new BufferedReader(new FileReader(filePrenotazioni));
String line=null;
while((line=reader.readLine())!=null){
System.out.println(line);
Scanner s=new Scanner(line).useDelimiter(",");
if(s.hasNext()){
String nome=s.next();
int capienza=s.nextInt();
boolean videoproiettorePresente;
if (s.next().equals("V")) {
videoproiettorePresente = true;
} else { // se non è V(presente) è sicuramente N (non presente)
videoproiettorePresente = false;
}
System.out.println("I token delle prenotazioni sono "+nome+capienza+videoproiettorePresente);
Room newRoom=new Room(nome,capienza,videoproiettorePresente);
rooms.add(newRoom);
}
}
}catch(Exception e){
}
System.out.println("La dimensione della mia lista di Room è: "+rooms.size());
try{
File filePrenotazioni=new File("prenotazioni.csv");
BufferedReader reader=new BufferedReader(new FileReader(filePrenotazioni));
String line=null;
while((line=reader.readLine())!=null){
System.out.println(line);
Scanner s=new Scanner(line).useDelimiter(",");
if(s.hasNext()){
String nomeSala=s.next();
int giornoPrenotazione=s.nextInt();
String nomeConferenziere=s.next();
System.out.println("I token delle prenotazioni sono "+nomeSala+giornoPrenotazione+nomeConferenziere);
Prenotazioni newPren=new Prenotazioni(nomeSala,giornoPrenotazione,nomeConferenziere);
prenotazioni.add(newPren);
}
}
}catch(Exception e){
}
System.out.println("La dimensione della mia lista di Prenotazioni è: "+prenotazioni.size());
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return 4;
}
@Override
public int getRowCount() {
return rooms.size();
}
@Override
public Object getValueAt(int r, int c) {
Room sala=rooms.get(r);
Prenotazioni pren=prenotazioni.get(r);
if (sala!=null){
switch (c){ //
case 0:
return sala.getNome();
case 1:
return sala.getCapienza();
case 2:
return sala.isVideoproiettorePresente();
case 3:
// return pren.getNumPrenotazioni();
}
}
return new String();
}
@Override
public boolean isCellEditable(int r,int c){
return(true);
}
@Override
public void setValueAt(Object o, int r, int c){
this.fireTableDataChanged();
}
public String getColumnName(int c){
return Room.colonne[c];
}
}
Questa e la View:
codice:
public class RoomView extends JPanel implements ListSelectionListener {
private BookingModel bmodel;
private JTable tab;
private JButton salva;
public RoomView(BookingModel bm){
this.bmodel=bm;
RoomController rc=new RoomController(bmodel, this);
setLayout(new BorderLayout());
//Pannello della tabella
tab=new JTable(bmodel);
tab.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tab.getSelectionModel().addListSelectionListener(this);
this.add(new JScrollPane(tab), BorderLayout.CENTER);
salva=new JButton(rc.getSalvaAct());
this.add(salva,BorderLayout.SOUTH);
}
@Override
public void valueChanged(ListSelectionEvent arg0) {
int row = tab.getSelectedRow();
}
}
Con questa view e quel modello riesco a visualizzare una finestra con all'interno una tabella di 4 colonne. Bene..ora selezionando una riga di questa tabella devo poter visualizzare una nuova finestra contenente una tabella di 365 celle(che sarebbe una sorta di calendario dove all'interno metto il numero di ogni gg dell'anno). Mi sono spiegato meglio? Come posso fare questa cosa?