2011-12-22 6 views
1

私は約20列のモデルを持つJTableを持っています。 1つの画面に収まる以上に、スクロールバーを使用すると、ユーザーは上下左右にスクロールすることができます。JTable:「列へのスクロール」を無効にすることはできますか?

ユーザーが右にスクロールして行をクリックすると、その行が正しく選択されます。ただし、ユーザーがスクロールバーを使用して左にスクロールした後、下矢印キーを押すと、JTableは自動的に右にスクロールして次の行を選択します。 JTableが最初にクリックした列をJTableが覚えているかのように、下矢印キーを使用するとJTableはその列を1行下に移動し、その列にスクロールします。

この動作を無効にする方法はありますか?そのため、この「魔法」スクロールをJTableが実行せずに選択したビューにユーザーが残っていますか?

答えて

3

セル選択にJTableがスクロールされます。

セルをクリックすると、Jtableはそのセルにそのクルースを配置します。これはすべての将来のナビゲートが最後にクリックされた場所から行われることを意味します。 Nomatterが最後の場所をどれくらいスクロールするかは、キーナビゲーションの開始点になります。

実際にあなたが記述する動作は、ほぼすべてのGUIの標準です。 Intellij、Excel、Word、Editplusなどを利用してください。矢印キーを使用して移動すると、最後にクリックされた場所に常にスクロールします。戻ってあなたの問題を脇

が、GUIでの議論

私は:-(不要な動作には影響しない、あなたはそれは残念ながらあなたのJTableの

+0

ありがとう!それはトリックでした! – sbrattla

+0

しかし、これも垂直スクロールを無効にします! – WSS

1

setColumnSelectionAllowed(false)を試すと、ユーザーは最初に列を選択できません。

+0

setAutoscrolls(false); 

で動作させることができると思います – sbrattla

+0

私はあなたの質問がこれと類似していると思うhttp://stackoverflow.com/questions/2132444/jscrollpane-and-jlist-auto-scroll – Efthymis

+0

本当に振る舞いは変わっていませんでしたが、 ! – sbrattla

関連する問題