- kada se izmeni stanje jTextFieda tj. na keyreleased da se otvori jTable
- u jTable bi se trebali učitati filtrirani podaci iz baze podataka. npr. ako je u pitanju naziv artikla da on u jTable prikaže TOP 10 redova iz tabele artikli iz baze podataka, obeleži prvi red
- zatim ukoliko se klikne na red u tabeli jTableMouseClicked ili pritisne enter, selektovani podaci iz reda da se smeste u jTextField polja npr. txtbarcode, txtCena...
Ovo je predefinisana tabela da nebi navodio putanju do baze podataka i upite
Code:
JTable table;
DefaultTableModel model;
JScrollPane jsp;
String[] columns = {"ID", "Barcode","Naziv artikla", "Cena"};
Object[][] rows = {
{"1", "000002552", "Hleb", "50"},
{"2", "003215852","Limun", "150"},
{"3", "021365685","Jogurt", "110"},
{"4", "005483162","Breskva", "250"},
{"5", "004554552","Čips", "50"},
{"6", "005646546", "Smoki", "30"}
};
JTable table;
DefaultTableModel model;
JScrollPane jsp;
String[] columns = {"ID", "Barcode","Naziv artikla", "Cena"};
Object[][] rows = {
{"1", "000002552", "Hleb", "50"},
{"2", "003215852","Limun", "150"},
{"3", "021365685","Jogurt", "110"},
{"4", "005483162","Breskva", "250"},
{"5", "004554552","Čips", "50"},
{"6", "005646546", "Smoki", "30"}
};
Ovu metodu table() nephodno je korigovati da se prikaže na lokaciji ispod txtSearch() a ne kao u navedenoj u novoj formi jFrame, a poziva se onda kada kada je txtSearch !prazno
Code:
public void table(){
JFrame frm = new JFrame();
JTable jt = new JTable(rows, columns);
jt.setBounds(30,40,500,150);
JScrollPane sp = new JScrollPane(jt);
frm.add(sp);
frm.setSize(500, 150);
frm.setBackground(Color.red);
frm.setVisible(true);
//table.setLocation(txtSearch.getX(), txtSearch.getY()+30);
}
public void table(){
JFrame frm = new JFrame();
JTable jt = new JTable(rows, columns);
jt.setBounds(30,40,500,150);
JScrollPane sp = new JScrollPane(jt);
frm.add(sp);
frm.setSize(500, 150);
frm.setBackground(Color.red);
frm.setVisible(true);
//table.setLocation(txtSearch.getX(), txtSearch.getY()+30);
}
poziv metode koja kreira tabelu sa reziltatima
Code:
private void txtSearchKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(txtSearch.getText().isEmpty())
{
txtSearch.requestFocus();
}
else{
table();
}
}
private void txtSearchKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(txtSearch.getText().isEmpty())
{
txtSearch.requestFocus();
}
else{
table();
}
}
- ovo je metoda jTableMouseClicked koja nakon klika miša na obeleženi red smešta podatke iz tabele u jTextfields
Code:
private void jTableMouseClicked(java.awt.event.MouseEvent evt) {
int rowIndex = jTable.getSelectedRow();
int id= Integer.valueOf(jTable.getValueAt(rowIndex, 0).toString());
int barcode = Integer.valueOf(jTable.getValueAt(rowIndex, 1).toString());
txtNazivArtikla.setText(jTable.getValueAt(rowIndex, 2).toString());
txtCerna.setText(jTable.getValueAt(rowIndex, 3).toString());
}
private void jTableMouseClicked(java.awt.event.MouseEvent evt) {
int rowIndex = jTable.getSelectedRow();
int id= Integer.valueOf(jTable.getValueAt(rowIndex, 0).toString());
int barcode = Integer.valueOf(jTable.getValueAt(rowIndex, 1).toString());
txtNazivArtikla.setText(jTable.getValueAt(rowIndex, 2).toString());
txtCerna.setText(jTable.getValueAt(rowIndex, 3).toString());
}
- ovo je metoda jTableKeyReleased koja nakon pritiska enter obeleženi red smešta selektovane podatke iz tabele u jTextfields
Code:
private void jTableKeyReleased(java.awt.event.KeyEvent evt) {
rowIndex = jTable.getSelectedRow();
if(evt.getKeyCode() == KeyEvent.VK_ENTER)
{
int rowIndex = jTable.getSelectedRow();
int id= Integer.valueOf(jTable.getValueAt(rowIndex, 0).toString());
int barcode = Integer.valueOf(jTable.getValueAt(rowIndex, 1).toString());
txtNazivArtikla.setText(jTable.getValueAt(rowIndex, 2).toString());
txtCerna.setText(jTable.getValueAt(rowIndex, 3).toString());
}
}
private void jTableKeyReleased(java.awt.event.KeyEvent evt) {
rowIndex = jTable.getSelectedRow();
if(evt.getKeyCode() == KeyEvent.VK_ENTER)
{
int rowIndex = jTable.getSelectedRow();
int id= Integer.valueOf(jTable.getValueAt(rowIndex, 0).toString());
int barcode = Integer.valueOf(jTable.getValueAt(rowIndex, 1).toString());
txtNazivArtikla.setText(jTable.getValueAt(rowIndex, 2).toString());
txtCerna.setText(jTable.getValueAt(rowIndex, 3).toString());
}
}
Unapred hvala, svaka pomoć i delimična bi mi dobro došla...