1

名前付きtableView.getSelectionModel().select(0);の呼び出しが機能しない理由として考えられるものを挙げていただけますか?javafx.scene.control.TableViewtableView

cellSelectionEnabled(false)この場合、 andを使用していて、空でない を返すSelectionMode.SINGLEとしましょう。tableView.getItems()FXCollections.observableArrayList

tableView.getSelectionModel().select(0);より正確には、次のようなメソッドからの呼び出しが機能しないインスタンスが存在する可能性がある理由の可能な答えを探していますselectTableViewRow0()

private void selectTableViewRow0(){
    tableView.getSelectionModel().select(0);
}

何か提案はありますか?

編集:
以下のコメントで述べたように、呼び出すとtableView.getSelectionModel().isSelected(0);trueが返されます。リフレクションを使用して、選択した行を強調表示する TableView のコードを呼び出すことができると思います。問題は、TableView コードのどの部分を呼び出す必要があるのか​​ わからないように見えることです。select(0) を呼び出すと、次の 2 行が内部的に呼び出されると考えました。しかしその後、選択した行を強調表示するように TableView に指示するコードはないようです。

updateSelectedIndex(row);
focus(row, column);
4

2 に答える 2

3

やってみました

Platform.runLater(new Runnable() {
    public void run() {
        tableView.getSelectionModel().select(0);
    }
});
于 2013-07-31T03:02:33.773 に答える
-1

貢献してくれた jewelsea と jhsheets に感謝します。この問題について私が見つけた理由の 1 つは、同様のシーンが発生し、古いシーンがガベージ コレクションされていない場合、(古いシーンの) 古いテーブル ビュー アイテムが選択されることです。幸いなことに、関連するバグを見つけたので、興味があれば議論できます。

于 2013-11-16T13:20:56.080 に答える