【问题标题】:moving / scrolling up and down on three JTable simultanously.同时在三个 JTable 上上下移动/滚动。
【发布时间】:2012-04-23 14:02:22
【问题描述】:

我在三个不同的 jscrollpane 上有三个不同的 jtable - 一个挨着另一个。
我成功编写了一些代码,当我滚动鼠标滚轮时,它们会一起滚动。
我继承了 JScrollpane 并重写了它的 processMouseWheelEvent 方法,如下所示:

  public void processMouseWheelEvent(MouseWheelEvent e) {
    ...
    if (e.getSource() == this) {
        for (BTSJScrollPane other : effected) {
            other.processMouseWheelEvent(e);
        }
    }
}

我已经使用

取消了 pageup pagedown
 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. 我可以知道我是否接近滚动窗格中查看部分的末尾吗?需要吗

【问题讨论】:

    标签: java swing listener jscrollpane jscrollbar


    【解决方案1】:

    1、2 和 3:您应该在滚动条上使用侦听器,以便它可以与鼠标、键盘和滚动条交互。这样你就不需要按键或鼠标监听器了。这是一种方法:

    scroll1.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
    
        @Override
        public void adjustmentValueChanged(AdjustmentEvent e) {
           scroll2.getVerticalScrollBar().setValue(e.getValue());
        }
    });
    

    4:查看 JScrollPane 的 getVerticalScrollBar().getMaximumSize() 和 getModel() 以确定您是否接近尾声。

    【讨论】:

    • 哇。一个。如果我能给你更多的点,我会的。湾。我现在已经用这一行删除了很多代码。 C。我现在不需要回答不。 4.. d。非常感谢。
    • 很高兴能够回馈多年来帮助我的社区。​​span>
    猜你喜欢
    • 2016-07-27
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多