使用 JComboBox 和 JTextField 进行过滤
Filter using JComboBox and JTextField
我有一个 table,我想使用 JTextField
在其中 search/filter。我有这样做的代码,而且它正在工作。
现在,我想要做的是,通过 JComboBox
、select 我想要搜索的 Column 并显示整行与我搜索的内容。
这是我目前得到的代码:
private void Filtro(String query){
DefaultTableModel modelo = (DefaultTableModel) TabelaPessoal.getModel();
TableRowSorter<DefaultTableModel> pesquisa = new TableRowSorter<DefaultTableModel>(modelo);
TabelaPessoal.setRowSorter(pesquisa);
pesquisa.setRowFilter(RowFilter.regexFilter(query));
}
private void txt_pesquisaKeyReleased(java.awt.event.KeyEvent evt) {
String query = txt_pesquisa.getText().toLowerCase();
Filtro(query);
}
我该怎么做?
试试下面的代码
public class ColumnName {
public String columnName;
public int columnIndex;
public ColumnName( String columnName, int columnIndex ) {
this.columnName = columnName;
this.columnIndex = columnIndex;
}
public String getColumnName() {
return columnName;
public String toString() {
return columnName;
}
public int getColumnIndex() {
return columnIndex;
}
}
public JComboBox createComboBox( TableModel model ) {
int count = model.getColumnCount();
Object[] items = new Object[count];
for( int i = 0 ;i < count;i++ ) {
String columName = model.getColumnName(i);
items[i] = new ColumnName( columName,i);
}
return new JComboBox(items);
}
JComboBox columnCombo = createComboBox( TabelaPessoal.getModel() );
private void Filtro(String query){
DefaultTableModel modelo = (DefaultTableModel) TabelaPessoal.getModel();
TableRowSorter<DefaultTableModel> pesquisa = new
TableRowSorter<DefaultTableModel>(modelo);
TabelaPessoal.setRowSorter(pesquisa);
ColumnName columnName = ( ColumnName ) columnCombo.getSelectedItem();
pesquisa.setRowFilter( RowFilter.regexFilter(query, columnName.getColumnIndex() ) );
}
我有一个 table,我想使用 JTextField
在其中 search/filter。我有这样做的代码,而且它正在工作。
现在,我想要做的是,通过 JComboBox
、select 我想要搜索的 Column 并显示整行与我搜索的内容。
这是我目前得到的代码:
private void Filtro(String query){
DefaultTableModel modelo = (DefaultTableModel) TabelaPessoal.getModel();
TableRowSorter<DefaultTableModel> pesquisa = new TableRowSorter<DefaultTableModel>(modelo);
TabelaPessoal.setRowSorter(pesquisa);
pesquisa.setRowFilter(RowFilter.regexFilter(query));
}
private void txt_pesquisaKeyReleased(java.awt.event.KeyEvent evt) {
String query = txt_pesquisa.getText().toLowerCase();
Filtro(query);
}
我该怎么做?
试试下面的代码
public class ColumnName {
public String columnName;
public int columnIndex;
public ColumnName( String columnName, int columnIndex ) {
this.columnName = columnName;
this.columnIndex = columnIndex;
}
public String getColumnName() {
return columnName;
public String toString() {
return columnName;
}
public int getColumnIndex() {
return columnIndex;
}
}
public JComboBox createComboBox( TableModel model ) {
int count = model.getColumnCount();
Object[] items = new Object[count];
for( int i = 0 ;i < count;i++ ) {
String columName = model.getColumnName(i);
items[i] = new ColumnName( columName,i);
}
return new JComboBox(items);
}
JComboBox columnCombo = createComboBox( TabelaPessoal.getModel() );
private void Filtro(String query){
DefaultTableModel modelo = (DefaultTableModel) TabelaPessoal.getModel();
TableRowSorter<DefaultTableModel> pesquisa = new
TableRowSorter<DefaultTableModel>(modelo);
TabelaPessoal.setRowSorter(pesquisa);
ColumnName columnName = ( ColumnName ) columnCombo.getSelectedItem();
pesquisa.setRowFilter( RowFilter.regexFilter(query, columnName.getColumnIndex() ) );
}