У меня есть jtable из базы данных MySQL в моем приложении, как на этом изображении;
Когда я выбираю строку, я показываю ее идентификационный номер слева внизу, как показано на изображении выше. Затем я отправлю этот идентификатор куда-нибудь, чтобы он мне понадобился. Но у меня также есть динамический c поиск моей таблицы, я делаю поиск, как на этом изображении;
Я фильтрую поиск Те, которые начинаются с буквы «Go», показывают 2 фильма, и их квалификация верна, но он не дает правильный идентификатор, когда я выбираю один. Как видно на изображении, я выбираю Good Time mov ie, его идентификатор равен 7, но левый нижний говорит 1, если я выбираю Gora mov ie, его идентификатор равен 8, но левый нижний говорит 2. Но я хочу, чтобы слева внизу было показано. идентификатор mov ie.
В моем коде, я думаю, эти методы будут полезны для понимания моей ошибки (модель DefaultTableModel; инициализируется при запуске класса);
My Конструктор 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);
}
}
}
Dynami c Метод поиска;
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
}
Метод KeyReleased для dynamicSearch;
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));
}