我正在尝试使用文本字段筛选表视图,我需要一个文本字段(txtSearch)来搜索“nhs编号”、“名字”、“姓氏”和“分类类别”。我曾尝试在网上实施各种解决方案,但没有成功,我对这一切还是新手,所以如果问得不好,我深表歉意。任何帮助都将不胜感激,我的代码如下。
公共类QueueTabPageController实现可初始化{
@FXML
private TableView<Patient> tableView;
@FXML
private TableColumn<Patient, String> NHSNumberColumn;
@FXML
private TableColumn<Patient, String> firstNameColumn;
@FXML
private TableColumn<Patient, String> lastNameColumn;
@FXML
private TableColumn<Patient, String> timeEnteredColumn;
@FXML
private TableColumn<Patient, String> triageAssessmentColumn;
@FXML
private TextField filterField;
@FXML
private QueueTabPageController queueTabPageController;
private ObservableList<Patient> tableData;
// public static LinkedList<Patient> displayQueue;
/**
* Initializes the controller class. This method is automatically called
* after the fxml file has been loaded.
*
* Initializes the table columns and sets up sorting and filtering.
*/
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
assert tableView != null : "fx:id=\"tableView\" was not injected: check your FXML file 'FXMLQueueTabPage.fxml'";
NHSNumberColumn.setCellValueFactory(new PropertyValueFactory<Patient, String>("nhsNumber"));
firstNameColumn.setCellValueFactory(new PropertyValueFactory<Patient, String>("firstName"));
lastNameColumn.setCellValueFactory(new PropertyValueFactory<Patient, String>("lastName"));
timeEnteredColumn.setCellValueFactory(new PropertyValueFactory<Patient, String>("timeEnteredString"));
triageAssessmentColumn.setCellValueFactory(new PropertyValueFactory<Patient, String>("triage"));
// display the current queue to screen when opening page each time
displayQueue(Queue.queue);
// 0. Initialize the columns.
//firstNameColumn.setCellValueFactory(new PropertyValueFactory<Patient, String>("firstName"));
//lastNameColumn.setCellValueFactory(new PropertyValueFactory<Patient, String>("lastName"));
// 1. Wrap the ObservableList in a FilteredList (initially display all
// data).
FilteredList<Patient> filteredData = new FilteredList<>(tableData,
p -> true);
// 2. Set the filter Predicate whenever the filter changes.
filterField.textProperty().addListener(
(observable, oldValue, newValue) -> {
filteredData.setPredicate(Patient -> {
// If filter text is empty, display all persons.
if (newValue == null || newValue.isEmpty()) {
return true;
}
// Compare first name and last name of every person
// with filter text.
String lowerCaseFilter = newValue.toLowerCase();
if (Patient.getFirstName().toLowerCase()
.contains(lowerCaseFilter)) {
return true; // Filter matches first name.
} else if (Patient.getLastName().toLowerCase()
.contains(lowerCaseFilter)) {
return true; // Filter matches last name.
}
return false; // Does not match.
});
});
// 3. Wrap the FilteredList in a SortedList.
SortedList<Patient> sortedData = new SortedList<>(filteredData);
// 4. Bind the SortedList comparator to the TableView comparator.
sortedData.comparatorProperty().bind(tableView.comparatorProperty());
// 5. Add sorted (and filtered) data to the table.
tableView.setItems(sortedData);
}
此处出现错误(步骤4):
(TableView.comparatorProperty());
和(步骤5)
TableView.setItems(sortedData);
说明:无法从类型TableView对非静态方法setItems(ObservableList)进行静态引用
您的表视图定义为:
@FXML
private TableView<Patient> tableView;
所以
尝试把:(tableView.comparatorProperty());
而不是:(TableView.comparatorProperty());
并对:TableView执行相同的操作。设置项目(sortedData)
我建议您更改其他与tableView不同的视图,例如patientTable!
让我知道它是否有效!
我想编写一个方法,在该方法中传递textfield(filterField)、来自tableview(data)和tableview(table)的数据,以便筛选所有表数据,每次在textfield中释放键时,都会检查键入的字符串是否包含在表的任何单元格中。 为此,我使用以下代码: 此代码仅在textfield中的字符串与表中任何单元格的值完全匹配时返回值。 我将需要它返回表中包含键入字符串的任何
首先,我试图使选择所有复选框,如果我单击表头中的选择所有复选框,整个表行将选择并显示一个复选框反向消息,即我选择了多少复选框。这里的问题是,如果我单击select all复选框,反向消息不会显示楼上的表,即我选择了多少行。 其次,如果我从任何列中筛选任何数字,相同的数字将显示同一列中有多少行具有相同的数字。如果我选中了所有复选框,那么反向消息将显示我选中了多少行复选框。这里,问题是显示整个表行计数
我有一个谷歌表格数据透视表,里面有日期的交易。源数据每天更新。我知道如何为一个月内的所有交易手动设置过滤器,例如,02/01/19和02/29/19之间的日期。 如果我只想查看当月的所有数据,而不想手动选择特定月份,该怎么办?如果是3月15日,我只想看到从3月1日到当前日期的交易,并在4月到来时自动更新,而不必手动选择4月。 你对如何做到这一点有什么想法吗?
有什么建议吗?
筛选器。 Usage 全部引入 import { Picker } from 'beeshell'; 按需引入 import Picker from 'beeshell/dist/components/Picker'; Examples Code import { Picker } from 'beeshell'; <Picker ref={(c) => { this._pick
我在正确表达ElasticSearch regexp过滤器的regexp时遇到了问题。我正在尝试匹配url字段中“info-for/media”中的任何内容,例如http://mydomain.co.uk/info-for/media/press-release-1。为了尝试获得正确的正则表达式,我现在使用,但最终将是带有用户查询字符串的。 发布到localhost:9200/_search 这返