2016-06-22 14 views
0

最初に私の英語をお詫びします:) 私は奇妙なバグがあります...ボタンを押した後、JavaFX TableViewのいくつかの列を非表示にしたいと思います。コードはできるだけシンプルです:JavaFX - 列を非表示にした後にセルレンダリングのバグが発生する

   column8.visibleProperty().set(false); 
       column9.visibleProperty().set(false); 

(私も同じ結果で削除してテストしました)。 問題は、「隣接セル」では、このアクションの後のどこかから「セパレータ」があることです。 私はCellfactoriesを私のコードです。実際に間違っているかを説明する

//Store 
column10.setCellFactory(column -> { 
    return new TableCell<Anfrage, Terminals>() { 
     @Override 
     protected void updateItem(Terminals item, boolean empty) {      
      super.updateItem(item, empty); 
      if (item == null || empty) { 
       setText(null); 
      } else { 
       setText(item.getStore());      
      } 
     }         
    };      
}); 

いくつかの写真:隠されたセルの一つは、それは

column8.setCellFactory(column -> { 
    return new TableCell<Anfrage, Mandant>() { 
     @Override 
     protected void updateItem(Mandant item, boolean empty) {      
      super.updateItem(item, empty); 
      if (item == null || empty) { 
       setText(null); 
      } else { 
       setText(item.getNameMandant());      
      } 
     }         
    };      
}); 

そして、私は隠れた後に「区切り」を持つセル、のためです。 Before hiding After hiding

私は「真」再びの何もかもに見える設定した場合は期待通りに動作します - すべての列は、どこでも任意の「セパレータ」せずにそこにあります。

ありがとうございました!

答えて

1

最後に、JavaFX 8u60でテーブルビューの最新表示が解決されました。今は "ネイティブ" table.refresh()トリックを行う。

関連する問題