我在JTable
上有一个JButton
和两个JDialog
。当我点击一个JButton
(活动按钮)时,我可以将一些数据加载到此JTable
1}}。这也与第二个JButton
(非活动按钮)相同。
以下是一些屏幕截图,
然后我尝试使用文本字段搜索表格中的数据。所以我为此目的使用文档监听器。但这只适用于Active button
。
以下是我用来执行此操作的步骤,
Vector originalTableModel;
DocumentListener documentListener;
在JDialog的构造函数中,
originalTableModel = (Vector) ((DefaultTableModel) searchTable.getModel()).getDataVector().clone();
//add document listener to jtextfield to search contents as soon as something typed on it
addDocumentListener();
其他步骤和方法,
private void searchTextKeyReleased(java.awt.event.KeyEvent evt)
{
searchTableContents(searchText.getText());
}
private void addDocumentListener()
{
documentListener = new DocumentListener()
{
public void changedUpdate(DocumentEvent documentEvent)
{
search();
}
public void insertUpdate(DocumentEvent documentEvent)
{
search();
}
public void removeUpdate(DocumentEvent documentEvent)
{
search();
}
private void search()
{
searchTableContents(searchText.getText());
}
};
}
public void searchTableContents(String searchString)
{
DefaultTableModel currtableModel = (DefaultTableModel) searchTable.getModel();
//To empty the table before search
currtableModel.setRowCount(0);
//To search for contents from original table content
for (Object rows : originalTableModel)
{
Vector rowVector = (Vector) rows;
for (Object column : rowVector)
{
if (column.toString().toLowerCase().contains(searchString.toLowerCase()))
{
//content found so adding to table
currtableModel.addRow(rowVector);
break;
}
}
}
}
实际上我想为JButtons
进行搜索。
对此有任何想法吗?
谢谢。