我已经在ID为“ lwAllUserGrp”的FXML中创建了一个列表视图,我可以使用该ID和以下函数来填充它:
public void populateAllUserList() {
lwAllUserGrp.getItems().clear();
///////////////////////////////////////////////
String filter = txtSearch.getText();
String Query = "Select user_name, user_login_name, user_state from dm_user where r_is_group = 0 and user_state = 0 and (user_name not like 'dm%' and user_name not like 'svc%' and user_name not like 'lexo%' ) order by user_name";
ArrayList<String> AllUser = GetDataWithDql(_session, Query, "user_name");
for (String x : AllUser) {
if (x.toLowerCase().contains(filter.toLowerCase())){
lwAllUserGrp.getItems().add(x);
}
}
}
但是当我添加以下功能以查看选择了哪一行时:
public void selectedItemFromListView(){
// System.out.println("blabla");
selected = lwAllUserGrp.getSelectionModel().getSelectedItem();
// System.out.println(selected);
String Query = "select user_name , user_state , user_address, user_login_name , user_web_page from dm_user where user_name ='@aclname'";
Query = Query.replace("@aclname",selected );
ArrayList<User> allUserNames = GetDataWithDqlpro(_session, Query, "user_name","user_address","user_state","user_login_name","user_web_page");
for (int i = 0 ; i < allUserNames.size() ; i++ ){
if (selected.compareToIgnoreCase(allUserNames.get(i).getUsername() ) == 0){
username.setText(selected);
login_Name.setText(allUserNames.get(i).getuserLoginName());
state.setText(allUserNames.get(i).getState());
address.setText(allUserNames.get(i).getAddress());
WP.setText(allUserNames.get(i).getuserWP());
}
}
}
我的函数根本没有被调用?有人知道原因吗?
最佳答案
如果您不调用该函数,则它不会自行调用:)您必须将其添加为侦听器或其他内容。在您的情况下,您在FXML中缺少侦听器分配(我有这样的预感,这就是我问的原因)。正如您在注释中发现的那样,应在FXML中添加适当的onMouseClicked
说明符。