|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.swing.table.AbstractTableModel
BasicProductView
public class BasicProductView
Luokka toimii JTable-komponentin tieto-oliona, jonka palveluita käyttäen JTable saa tarvitsemansa taulukon piirtämiseen ja sen tietojen muokkaamiseen.
Luokka toteuttaa tähän vaaditun TableModel-rajapinnan perimänsä AbstractTableModel-luokan kautta, joka tarjoaa monia valmiiksi toteutettuja ominaisuuksia jättäen toteutettavaksi vain välttämättömimmän.
BasicProductView-oliota käytetään JTable-komponentin tietosisällön mallina, kun halutaan näyttää ja käsitellä ns. perustuotteita:
Luokan ilmentymä säilöö ja tarjoaa piirrettäväksi Hallintasovelluksen Tuotteet-välilehden Juotavat ja lisukkeet-taulun sisällön.
BasicProductView asetetaan JTable-komponentille esimerkiksi konstruktorissa
BasicProductView-olion oma tietosisältö täytyy asettaa ja päivittää setBasicProducts-metodilla.
Constructor Summary | |
---|---|
BasicProductView()
Konstruktori on tyhjä. |
Method Summary | |
---|---|
BasicProduct[] |
getBasicProducts()
Metodi palauttaa listan tämän olion sisältämistä perustuotteista. |
java.lang.Class<?> |
getColumnClass(int col)
JTable käyttää metodia selvittääkseen sarakkeen arvojen tyypin. |
int |
getColumnCount()
JTable käyttää tätä metodia selvittääkseen sarakkeiden määrän. |
java.lang.String |
getColumnName(int col)
JTable käyttää metodia sarakkeiden otsikoiden saamiseksi. |
int |
getIntLastEditedRow()
|
int |
getRowCount()
JTable käyttää tätä metodia selvittääkseen rivien määrän. |
java.lang.Object |
getValueAt(int row,
int col)
JTable käyttää tätä metodia selvittääkseen solun arvon piirtämistä varten. |
boolean |
isCellEditable(int row,
int col)
JTable määrittää metodin avulla, onko tietyn solu arvo muokattavissa. |
void |
setBasicProducts(BasicProduct[] objBps)
Metodilla asetetaan taulukon tietosisältö. |
void |
setIntLastEditedRow(int argIntLastEditedRow)
|
void |
setValueAt(java.lang.Object value,
int row,
int col)
JTable käyttää metodia, kun käyttäjä muokkaa jonkun solun arvoa. |
Methods inherited from class javax.swing.table.AbstractTableModel |
---|
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, removeTableModelListener |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public BasicProductView()
Method Detail |
---|
public java.lang.Class<?> getColumnClass(int col)
JTable käyttää metodia selvittääkseen sarakkeen arvojen tyypin. Se tarvitsee tietoa määrittäessään editorin ja piirtäjän sarakkeen soluille.
Jos indeksi on virheellinen, palauttaa metodi Object.class
getColumnClass
in interface javax.swing.table.TableModel
getColumnClass
in class javax.swing.table.AbstractTableModel
col
- sarakkeen indeksi
public int getColumnCount()
JTable käyttää tätä metodia selvittääkseen sarakkeiden määrän.
Juotavien ja lisukkeiden taulukossa on kiinteä sarakemäärä 10.
public int getRowCount()
JTable käyttää tätä metodia selvittääkseen rivien määrän.
Perustuotteiden taulukossa jokainen tuote on omalla rivillään.
public java.lang.String getColumnName(int col)
JTable käyttää metodia sarakkeiden otsikoiden saamiseksi.
Metodi päättelee col-arvon perusteella palautettavan merkkijonon, jonka se hakee Utilities.getString(String) -metodin avulla:
getColumnName
in interface javax.swing.table.TableModel
getColumnName
in class javax.swing.table.AbstractTableModel
col
- sarakkeen indeksi
public boolean isCellEditable(int row, int col)
JTable määrittää metodin avulla, onko tietyn solu arvo muokattavissa.
Kun ollaan muokattavalla rivillä tai mitään riviä ei ole vielä aloitettu muokkaamaan, kaikki arvot ovat muokattavissa, paitsi tallennus -painike silloin, kun riviä ei ole muokattu.
Kun jotakin riviä on muokattu, muita rivejä ei voi muokata ennen kuin ensimmäinen on talletettu.
isCellEditable
in interface javax.swing.table.TableModel
isCellEditable
in class javax.swing.table.AbstractTableModel
row
- rivicol
- sarake
public java.lang.Object getValueAt(int row, int col)
row
- rivin indeksicol
- sarakkeen indeksi
java.lang.NullPointerException
- jos rivin indeksissä on null-viitepublic void setValueAt(java.lang.Object value, int row, int col)
JTable käyttää metodia, kun käyttäjä muokkaa jonkun solun arvoa.
Parametrit viittaavat indekseillään tiettyyn taulukon soluun. Value-parametrin arvo tulee joltakin JTable-komponentille rekisteröidyltä editorilta, jolla käyttäjä on muokannut solun arvoa.
setValueAt
in interface javax.swing.table.TableModel
setValueAt
in class javax.swing.table.AbstractTableModel
value
- editorin antama arvorow
- rivin indeksicol
- sarakkeen indeksipublic BasicProduct[] getBasicProducts()
public void setBasicProducts(BasicProduct[] objBps)
Metodilla asetetaan taulukon tietosisältö.
JTablen tarvitsemat palvelut nojautuvat tällä metodilla asetetun taulukon sisältöön.
Metodia kutsutaan MainFrame-luokan RefreshTables()-metodista käsin. Metodi asettaa parametrina saamansa BasicProduct-taulukon objBasicProducts-kentän arvoksi. Tälle metodille voi syöttää suoraan Utilities.getBasicProducts()-metodin paluuarvon. Null-arvo aiheuttaa poikkeuksen.
objBps
- Utilities.getBasicProducts()
java.lang.IllegalArgumentException
- jos parametri on nullpublic int getIntLastEditedRow()
public void setIntLastEditedRow(int argIntLastEditedRow)
argIntLastEditedRow
- the intLastEditedRow to set
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |