2017-06-06 5 views
2

私はTableViewを持っていて、セルがフォーカスを失ったときに何かしたい。 私はこのTableViewでセル選択を有効にしており、セルのフォーカスが失われたことをリッスンしません。私はこの方法を試してみました:Javafx:TableCellフォーカスがなくなった

table.getFocusModel().focusedCellProperty().addListener((observable, oldValue, newValue) -> { 
     if (newValue != null) { 
      //doSomething 
     } 
     // else doSomethingElse doesn't work 
}); 

私は(Ctrlキー+クリック)セルの選択を解除したときにだけ、それは聞いていません。私は何が間違っていたのですか?または、どのように私はTableCellで失われたフォーカスを聞くことができますか?

+1

セル*フォーカス*興味がありますか、セル*選択*ですか? –

+0

@James_D私はセル選択に興味があり、何とかselectedCellを聞きますが、選択モデルには 'selectedCellProperty'がありません。選択されたセルを何とか聞くことができれば完璧です(焦点が合っていない、多分質問に間違っていたかもしれません)。どのようにそれを行うことができますか考えていますか? – Sunflame

答えて

0

私はこれを使用しています:

TABLEVIEW.focusedProperty().addListener(new ChangeListener<Boolean>() { 
    @Override 
    public void changed(ObservableValue<? extends Boolean> arg0, Boolean oldPropertyValue, Boolean newPropertyValue) { 
     if (newPropertyValue) { 
      System.out.println("on focus"); 
     } else { 
      System.out.println("out focus"); 
     } 
    } 
}); 

それはあなたが他の選択要素(ペイン上で例えばクリック動作しない)を選択した場合にのみ機能します。

+1

確かに、それは個々のセルではなく、テーブル全体に焦点を当てるだけです。例えば。フォーカス(または選択)があるセルから別のセルに移動する場合、リスナーはまったく呼び出されません。 –

+0

私もこの方法を試しましたが、セルの選択を解除するときには動作しません。 '// doSomething'の部分では、セルがフォーカスされているかどうかに応じてボタンを有効/無効にします。悲しいことに、これは私を助けてくれません:( – Sunflame

+0

テーブルを選択してから選択を解除すると動作します – Developer66

関連する問題