按关键字搜索过滤和javafx中的列过滤器>> MySQL的

时间:2018-03-12 00:42:54

标签: mysql database search javafx filter

首先,我为我的语法道歉,因为英语不是我的第一语言,这是我今天的第二个问题,而且已经非常尴尬了。

我只想问一下如何在我的应用程序中添加搜索功能,例如搜索带过滤的关键字?

我可以执行小搜索功能,例如在搜索栏上输入单词,结果将反映在表格中。

我想知道的是如何做这样的事情......

enter image description here

说,如果我输入单词“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);
}

0 个答案:

没有答案