Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何分割组合框ObservableCollection中的值_Java_Arrays_List_Javafx_Observablecollection - Fatal编程技术网

Java 如何分割组合框ObservableCollection中的值

Java 如何分割组合框ObservableCollection中的值,java,arrays,list,javafx,observablecollection,Java,Arrays,List,Javafx,Observablecollection,在我的应用程序JavaFX中,我在一个组合框中显示几个用户,数据库中有两个表(名称和姓氏),我将用户存储在ObsersableCollection中。 但是在我想要分割实际选择用户的姓名和姓氏之后,在组合框中获取关于实际选择用户的其他信息 如何知道在组合框中选择的值: @覆盖 公共void初始化(URL arg0,ResourceBundle arg1){ //地方党 选择locataire(); listLocataire.valueProperty().addListener(新的Chang

在我的应用程序JavaFX中,我在一个组合框中显示几个用户,数据库中有两个表(名称和姓氏),我将用户存储在ObsersableCollection中。 但是在我想要分割实际选择用户的姓名和姓氏之后,在组合框中获取关于实际选择用户的其他信息

如何知道在组合框中选择的值:

@覆盖
公共void初始化(URL arg0,ResourceBundle arg1){
//地方党
选择locataire();
listLocataire.valueProperty().addListener(新的ChangeListener(){
@凌驾
public void已更改(@SuppressWarnings(“rawtypes”)observeValue ov,字符串t,字符串t1){
LocataireInfo();
}
});
listLocataire.setItems(locataireList);
}
我的班级选择Locataire;在这里,我重复显示组合框中显示的所有姓名

public void SelectLocataire(){
试一试{
Connection conn=DriverManager.getConnection(Cste.url、Cste.login、Cste.passwrd);
语句stmt=conn.createStatement();
结果集rs;
rs=stmt.executeQuery(“从位置选择*);
while(rs.next()){
nomUser=rs.getString(“nom”);
prenomUser=rs.getString(“prenom”);
locataireList.add(nomUser+“”+prenomUser);
}
康涅狄格州关闭();
}捕获(例外e){
}
}
LocataireInfo()是我尝试恢复数据库中其他信息的地方,用户在组合框中选择

public void LocataireInfo(){
试一试{
Connection conn=DriverManager.getConnection(Cste.url、Cste.login、Cste.passwrd);
语句stmt=conn.createStatement();
结果集rs;
rs=stmt.executeQuery(“从位置选择*,其中nom=”“+nomUser+””);
while(rs.next()){
civiliteUser=rs.getString(“Civilite”);
adresseUser=rs.getString(“Adresse”);
codePostalUser=rs.getString(“Codepostal”);
villeUser=rs.getString(“Ville”);
telFUser=rs.getString(“TelF”);
telPUser=rs.getString(“TelP”);
faxUser=rs.getString(“传真”);
emailUser=rs.getString(“电子邮件”);
}
康涅狄格州关闭();
//关于gére-les例外
}捕获(例外e){}
//在一辆四轮马车上
nom.setText(nomUser);
prenom.setText(prenomUser);
adresse.SETEXT(adresseUser);
codePostal.setText(codePostalUser);
维尔·塞特克斯(维勒塞尔);
telF.setText(telFUser);
telP.setText(telPUser);
fax.setText(faxUser);
email.setText(emailUser);
observations.setText(observationsUser);
civilite.setText(civiliteUser);
}
因此,我无法通过变量nomUser进行恢复,因为它是我需要执行的数据库si中的最后一个用户:myList.valueProperty(); 她返回:“name姓氏”,我希望在恢复数据库中的其他信息后进行拆分


感谢

要解决目前的问题,您可以:

// Handle error checking appropriately and probably need a better split based on your possible names
// for example "jon le snow" would not give you what you want.
listLocataire.valueProperty().addListener(new ChangeListener<String>() {
  @Override 
  public void changed(@SuppressWarnings("rawtypes") ObservableValue ov, String t, String t1) {
      String[] nom = t.split(" "); // "given surname" -> ["given","surname"];
      LocataireInfo(nom[1]);
  }
});
你在哪里使用

ComboBox<Person> comboBox = new ComboBox<>();
comboBox.setStringConverter(new StringConverter<Person>() {
   @Override public toString(Person person) { return person.nom + " " person.prenom; 
   @Override public fromString(String str) { ... }
});
ComboBox-ComboBox=新的ComboBox();
comboBox.setStringConverter(新StringConverter(){
@重写公共toString(Person){return Person.nom+“”Person.prenom;
@重写公共fromString(String str){…}
});

listLocataire.valueProperty().addListener(新的ChangeListener()){
@凌驾
公共无效已更改(@SuppressWarnings(“rawtypes”)observeValueOV,Person t,Person t1){
地点信息(人);
}
});

问题到底是什么?myList.valueProperty()与您的问题有什么关系?我希望使用组合框中选择的值恢复数据库中的信息,因此如果组合框中有John Snow(姓氏和姓名)。我希望在一个变量中拆分John,在另一个变量中拆分Snow,以便从MyTable中发送SQL请求,如SELECT*,其中Name=ValueInComboBox和昵称=ValueInComboBox。如果您有任何解决方案可以在comboBox中显示,并使用SELECT user Like和ID恢复数据库中的其他信息,我接受:)请提供其他代码关于有问题的流程。我在主要帖子中添加了更多关于代码和描述的详细信息。没有足够的信息来帮助您。
ComboBox<Person> comboBox = new ComboBox<>();
comboBox.setStringConverter(new StringConverter<Person>() {
   @Override public toString(Person person) { return person.nom + " " person.prenom; 
   @Override public fromString(String str) { ... }
});
listLocataire.valueProperty().addListener(new ChangeListener<Person>() {
    @Override 
    public void changed(@SuppressWarnings("rawtypes") ObservableValue ov, Person t, Person t1) {
       LocataireInfo(Person);
    }
});