3 つの異なる jscrollpane に 3 つの異なる jtable があります。
マウス ホイールをスクロールすると、それらすべてが一緒にスクロールされるようにするコードの作成に成功しました。
JScrollpane を継承し、その processMouseWheelEvent メソッドを次のようにオーバーライドしました。
public void processMouseWheelEvent(MouseWheelEvent e) {
...
if (e.getSource() == this) {
for (BTSJScrollPane other : effected) {
other.processMouseWheelEvent(e);
}
}
}
を使用してページアップページダウンをキャンセルしました
final InputMap inputMap =
comp.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
inputMap.put(KeyStroke.getKeyStroke("PAGE_DOWN"), EMPTY);
inputMap.put(KeyStroke.getKeyStroke("PAGE_UP"), EMPTY);
comp.getActionMap().put(EMPTY, emptyAction);
しかし、
私の唯一の問題は、ユーザーが上下にクリックすると、一緒に移動せず、個別にスクロールすることです。
助言がありますか ?
これまでのところ、スクロールペインに次のようなものを書きました
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
@Override public boolean dispatchKeyEvent(KeyEvent e) {
if (thisIsThesourceTable) {
if (e.getKeyCode() == 38 || e.getKeyCode() == 40) {
}
}
return false;
}
});
しかし:
1.もっと良い方法はありますか?
2.多分私はactionMapで何とかするべきですか?
3. キー アップ/ダウン イベントを他のスクロールペインに渡すにはどうすればよいですか?
4. スクロール ペインの表示部分の終わりに近づいているかどうかを知ることはできますか? 必要ですか