首先,我为我的语法道歉,因为英语不是我的第一语言,这是我今天的第二个问题,而且已经非常尴尬了。
我只想问一下如何在我的应用程序中添加搜索功能,例如搜索带过滤的关键字?
我可以执行小搜索功能,例如在搜索栏上输入单词,结果将反映在表格中。
我想知道的是如何做这样的事情......
说,如果我输入单词“bronte”和单词“beautiful”并且从组合框中选择主题英语,当我按下GO时,在tableview中反映的结果应该是“老鼠和男人”和“呼啸山庄“
我应该如何在数据库中组织我的表?因为我认为“关键词”栏目不应该这样。我没有解决方案。
我写的代码(但是我真的很需要):
使用此示例代码制作tableview:
public void loadDatabaseData(){
String query = "select * from table_sample";
try {
preparedStatement = connection.prepareStatement(query);
rs = preparedStatement.executeQuery();
while(rs.next()){
data.add(new table(
rs.getString("Name"),
rs.getString("Username"),
rs.getString("Password"),
rs.getString("kiki")
));
table.setItems(data);
}
preparedStatement.close();
rs.close();
}
catch(Exception e){
System.err.println(e);
}
}
搜索功能代码:
@FXML
public void searchUser()
{
searchBox.textProperty().addListener((observableValue,oldValue,newValue)->{
filteredData.setPredicate((Predicate<? super table>)user->{
if(newValue==null||newValue.isEmpty()){
return true;
}
String lowerCaseFilter=newValue.toLowerCase();
if(user.getName().toLowerCase().contains(lowerCaseFilter)){
return true;
}
else if(user.getUsername().toLowerCase().contains(lowerCaseFilter)){
return true;
}
return false;
});
});
SortedList<table> sortedData=new SortedList<>(filteredData);
sortedData.comparatorProperty().bind(table.comparatorProperty());
table.setItems(sortedData);
}