[ SAFF @ 29.11.2018. 10:57 ] @
Pozdrav svima, krenuo sam raditi na jednoj aplikaciji, zapravo primeru jednom vidu napredne pretrage, neophodna mi je pomoć ili instrukcije kako bi se to moglo uraditi:
- 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"}
                        };


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);
}


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();
        }
    }   


- 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());        



- 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());      
}
}


Unapred hvala, svaka pomoć i delimična bi mi dobro došla...