我有一个jtable,它来自我的应用程序中的MySQL数据库,如下图所示;
当我选择一行时,如上图所示,我在左下角显示其ID号。然后,我会将那个ID发送到某个地方,所以我需要它。但是我也有一个动态搜索我的表的地方,我像这张图片一样进行搜索;
我过滤搜索以'Go'字母开头的电影,它显示2部电影,并且其资格是正确的,但是当我选择一部电影时却没有给出正确的ID。从图像中可以看出,我选择了《好时光》电影,其ID为7,但左下角为1,如果我选择了Gora电影,其ID为8,但左下角为2。但是我想让左下角显示该电影的ID。
在我的代码中,我认为这些方法将有助于理解我的错误(DefaultTableModel模型;在类的开头进行了初始化;]]
我的Jdialog的构造函数;
public JDialogClass(java.awt.Frame parent, boolean modal, int id) { super(parent, modal); initComponents(); this.kullaniciID = id; model = (DefaultTableModel) myTable.getModel(); showTable(); }
showTable方法;
public void showTable(){ model.setRowCount(0); ArrayList<Programlar> programlar = new ArrayList<Programlar>(); programlar = islemler.programGetir(); if(programlar != null){ for(Programlar program:programlar){ Object[] tabloicerigi = {program.getId(),program.getAd(),program.getTur(),program.getTip(),program.getBolumsayisi(), program.getUzunluk(),program.getPuan()}; model.addRow(tabloicerigi); } } }
动态搜索方法;
public void dynamicSearch(String arama){ TableRowSorter<DefaultTableModel> tr = new TableRowSorter<DefaultTableModel>(model); myTable.setRowSorter(tr); tr.setRowFilter(RowFilter.regexFilter("(?i)" + arama, 1)); // 1 number here means search in 2nd column of table }
用于DynamicSearch的KeyReleased方法;
private void searchKeyReleased(java.awt.event.KeyEvent evt) { String arama = search.getText(); dynamicSearch(arama); }
和选定的行方法;
private void myTableMouseClicked(java.awt.event.MouseEvent evt) {
int selectedRow = myTable.getSelectedRow();
int selectedId = (int) model.getValueAt(selectedRow, 0);
labelWhichShowsID.setText(String.valueOf(selectedId));
}
我有一个jtable,它来自我的应用程序中的MySQL数据库,如下图所示;当我选择一行时,如上图所示,我在左下角显示其ID号。然后我将那个ID发送到某个地方...
myTable.setRowSorter(tr);