import javax.swing.*; import javax.swing.table.*; import java.util.Date; public class JTableEsim { public static void main(String[] args) { // Taulukkomalli JoukkueTaulu malli = new JoukkueTaulu(); // Luo JTable-taulun, joka näyttää mallin JTable taulu = new JTable(malli); // Sijoitetaan taulu kehykseen ja JScrollPane-luokkaan JFrame kehys = new JFrame("Joukkueita"); kehys.getContentPane().add(new JScrollPane(taulu), "Center"); kehys.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); kehys.setSize(400, 300); kehys.setVisible(true); } } class JoukkueTaulu extends AbstractTableModel { // Joukkueen tiedot ovat taulukossa protected Joukkue joukkue[] = new Joukkue[4]; // Sarakkeiden nimet protected String[] nimet = new String[] { "nimi", "pelit", "pisteet", "päivitetty" }; // Sarakkeissa olevat tietotyypit protected Class[] luokat = new Class[] { String.class, Integer.class, Integer.class, String.class }; public JoukkueTaulu() { // Alustaa joukkuiden tiedot. joukkue[0] = new Joukkue("Jokerit", 20, 28); joukkue[1] = new Joukkue("HIFK", 20, 22); joukkue[2] = new Joukkue("Tappara", 20, 29); joukkue[3] = new Joukkue("Ilves", 20, 24); } // Palauta rivien ja sarakkeiden lukumäärä public int getColumnCount() { return 4; } public int getRowCount() { return 4; } // Tietoa jokaisesta sarakkeesta. public String getColumnName(int nro) { return nimet[nro]; } public Class getColumnClass(int nro) { return luokat[nro]; } // Palauttaa jokaisen solun arvon. public Object getValueAt(int rivi, int sarake) { switch(sarake) { case 0: return joukkue[rivi].palauta_nimi(); case 1: return new Integer(joukkue[rivi].palauta_pelit()); case 2: return new Integer(joukkue[rivi].palauta_pisteet()); case 3: return joukkue[rivi].muutos_paiva(); default: return null; } } } //******************************************************************* class Joukkue { String nimi; // Joukkueen nimi. int pelit, // ottelujen pelit. pisteet; // ottelujen pisteet. Date pvm; // viimeinen päivitys. Joukkue(String n, int pel, int pist) { nimi = n; pelit = pel; pisteet = pist; pvm = new Date(); } // Palautusmetodeita public String palauta_nimi() { return nimi; } public int palauta_pelit() { return pelit; } public int palauta_pisteet() { return pisteet; } public String muutos_paiva() { return pvm.getDate() + ". " + (1 + pvm.getMonth()); } // Asetusmetodeita public void aseta_pelit(int p) { pelit = p; } public void aseta_pisteet(int p){ pisteet = p; } public void aseta_muutospaiva() { pvm = new Date(); } public void aseta_nimi(String n) { nimi = n; } }