2017-04-25 79 views
0

我已经含有因为总宽度的30列,一tableview中超过的tableview的宽度,所以tableview中首先示出的前7列,所以我需要移动到右键按右键,在前7列中,当按下右箭头键时,焦点会按预期移动到下一列,当它到达第8列时,第8列将成为第一列在桌面视图上显示,迄今为止非常好,但问题是,当我再次按右箭头键试图移动到下一列(第9,第10 ...),而不是焦点移动到下一列时,所有列将向左移动一列,这使我很难看到列的内容。JavaFX的泰伯维向右滚动通过按压右箭头键

所以我想问一下,如果有是的tableview的移动只有在按下右箭头键在键盘上,而不是转移留在表视图中的所有列的焦点任何设置?

在此先感谢!

回答

0

没有针对此行为,FER,因为我知道,没有设置。

调用TableView::scrollToColumnTableView::scrollToColumnIndex似乎可以有同样的行为。我们应该增加EventHandlerKeyEvent.KEY_PRESSED右键和左键点击来改变这个动作。

+0

你好@ monolith52,您的答复,根据你在回答中提到什么感谢:“我们应该通过正确的发射和左键来改变这种运动对KeyEvent.KEY_PRESSED添加事件处理程序”,可这个动作可以通过附加解决这个EventHandle?你能否详细解释一下? –

+0

1.处理KeyCode.RIGHT和KeyCode.LEFT。 2.选择并聚焦相邻的单元格。 3.计算并设置TableView的ScrollBar的位置。当我回答你时,我写了[test handler](https://gist.github.com/monolith52/9bb81966461ebcaf2e4044e610c8f821)。如果你愿意,试试这个。 – monolith52

+0

你好@ monolith52,非常感谢你:),这是伟大的,几乎没有,但有一个问题,例如,tableview中可同时显示7列,当我按下右键,第8栏,我希望第8列成为表视图中的第一列位置,现在情况是第8列位于tableview的最后位置。你可以做一些修改吗?再次感谢! –