2017-10-09 6 views
0

コンボボックスを介してアイテムを追加するたびに、スクロール後に以前のコンボボックスのアイテムが消去されますか?どのようにこの問題を解決する。 JavaFxを使用しています。スクロールするたびにアイテムが消えてしまいます。テーブルビューでスクロールすると、コンボボックスで選択された前のアイテムが消去されます

ここでは私のコード

私はコンボボックスに値を消えるために避けることができる方法
private void Showtabledata() { 

    meta=FXCollections.observableArrayList(); 
    meta1=FXCollections.observableArrayList(); 
    try { 
     Connection conn = DB.getConnection(); 
     ResultSet rs2 = conn.createStatement().executeQuery("SELECT * FROM testgroup_master"); 
     while (rs2.next()) { 
      String test=rs2.getString("groupname"); 
      meta1.add(test); 
      meta.add(new Patienttabledetails(rs2.getString("groupname"))); 

     } 
    } catch (SQLException ex) { 
     System.err.println("Error" + ex); 
    } 
    testCat_tbl.setCellFactory(ComboBoxTableCell.forTableColumn(new DefaultStringConverter(),meta1)); 
    testCat_tbl.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<Patienttabledetails, String>>() 

     { 
      @Override 
      public void handle(TableColumn.CellEditEvent<Patienttabledetails, String> event) { 
       System.out.println("Value"+event.getNewValue()); 
      } 
     }); 
    table1.setEditable(true); 
    table1.setItems(null); 
    table1.setItems(meta); 

} 

?エラーを示すスクリーンショットの上

Image 1image 2 image 3

。上記の選択項目をスクロールするたびに値が消えます。

+1

何かを - してくださいhttp://stackoverflow.com/help/mcveを読んで、それに応じて行動してください:) – kleopatra

答えて

0

あなたがonEditCommitハンドラを指定した場合、ComboBoxTableCell意志が新しい値がComboBoxで選択されている場合cellValueFactoryフォーム返さプロパティに新しい値を設定しようとしません。

これは、新しい値のonEditCommitハンドラを指定した場合、あなたの項目クラスに格納されるように、自分でこれを行う必要があることを意味:あなたが表示されていないコードで間違った

おそらく
testCat_tbl.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<Patienttabledetails, String>>() 

    { 
     @Override 
     public void handle(TableColumn.CellEditEvent<Patienttabledetails, String> event) { 
      System.out.println("Value"+event.getNewValue()); 

      // TODO: replace setter name by suitable setter of your Patienttabledetails class here 
      event.getRowValue().setSomeProperty(event.getNewValue()); 
     } 
    }); 
+0

ありがとう、それは私に役立ちます。 –

関連する問題