动态搜索后的JTable ID重置

问题描述 投票:0回答:1

我有一个jtable,它来自我的应用程序中的MySQL数据库,如下图所示;enter image description here

当我选择一行时,如上图所示,我在左下角显示其ID号。然后,我会将那个ID发送到某个地方,所以我需要它。但是我也有一个动态搜索我的表的地方,我像这张图片一样进行搜索;

enter image description here

我过滤搜索以'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发送到某个地方...

java swing user-interface jtable row
1个回答
0
投票
myTable.setRowSorter(tr);
© www.soinside.com 2019 - 2024. All rights reserved.