[ 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... |