다음은 table_job을 통해 필터링하여 키워드와 일치하는 행을 찾는 데 사용되는 try 블록입니다. 그러나 테이블 모델이 변경되면 올바른 행 인덱스를 얻으려고 애 쓰고 있습니다. 필터링 된 결과가 첫 번째가 아닌 행을 표시하더라도 항상 첫 번째 행을 선택합니다.JTable 필터링 후 행 번호
난 당신이 fireTableDataChanged()
으로 뭔가를 할 수 이해하지만, 나는 try
및 catch
블록 또는 . JLabel
try
{
sql = "SELECT Job.jobID as 'Job ID', Employer.name as'Company', Job.title as 'Role', Job.description as 'Description', Job.type as 'Type', Job.benefits as 'Benefits', Job.closing as 'Closing Date' FROM Job INNER JOIN Employer ON Job.employerID=Employer.employerID ORDER BY Employer.name";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
TableModel model = DbUtils.resultSetToTableModel(rs);
table_job.setModel(model);
final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
table_job.setRowSorter(sorter);
searchJob.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String text = keyword.getText();
if (text.length() == 0)
{
sorter.setRowFilter(null);
}
else
{
sorter.setRowFilter(RowFilter.regexFilter(text));
}
}
});
}
catch (Exception e)
{
e.printStackTrace();
}
private void setLabelText()
{
try
{
String table_click0 = (table_job.getModel().getValueAt(
row, 0).toString());
String sqlSt = "SELECT Employer.name, * FROM Job INNER JOIN Employer ON Job.employerID = Employer.employerID WHERE jobID='"+table_click0+"' ";
//rest of code to Label text...
}
와 테이블의 내용을 표시하는
setLabelText()
방법으로,이 작업을 수행하는 방법 및 WHERE 확실하지 않다
String table_click0 = (table_job.getModel().getValueAt(row, 0).toString());
은 업데이트 된 선택된 행이 아니라 잘못된 행을 선택합니다. 어떻게 이것을 고려할 수 있습니까?
1) 1 개 라인은 충분하다! 2) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오 (DB를 제외하고 일부 데이터를 하드 코딩하십시오). 3) 여기에는 [convertRowIndexToModel (int viewRowIndex)']가 필요합니다 (http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#convertRowIndexToModel%28int%29). –
[JTable # convertRowIndexToModel] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#convertRowIndexToModel (int))을 보길 원합니다. [테이블, 정렬 및 필터링 사용 방법] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting) – MadProgrammer
을 통해 읽으십시오. @MadProgrammer @Andrew - 고마워, 내가 인수로 무엇을 전달해야합니까. 왜냐하면'table_job.convertRowIndexToModel();'만이 유효하지 않기 때문에'setLabelText()'또는 try catch 블록에 있어야한다. – Hoody