dataGraphScrollPane和ratioGraphScrollPane是两个JScrollPane,在JScrollPane中使用JPanel,在其上画图,与这个问题无关,下面只粘贴一些相关代码
final JSplitPane graphSplitPane = new JSplitPane(
                JSplitPane.VERTICAL_SPLIT, dataGraphScrollPane,
                ratioGraphScrollPane);
        graphSplitPane.setDividerLocation(this.BASE_DATA_PANEL_Y
                + this.BASE_GRAPH_PANEL_Y);
        graphSplitPane.setOneTouchExpandable(true);
        Component divider5 = getSplitDivider(graphSplitPane);
        divider5.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                if (e.getClickCount() == 2) {
                    if (sellDataTablePane.isVisible()) {
                        graphSplitPane.setDividerLocation(1.0);
                    }
                }
            }
        });

解决方案 »

  1.   

    这属于JScrollBar的监听、操控问题import java.awt.event.AdjustmentEvent;
    import java.awt.event.AdjustmentListener;
    import javax.swing.JFrame;
    import javax.swing.JScrollBar;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTextArea;public class Test extends JFrame {
    private JSplitPane graphSplitPane = null; private JTextArea t_1 = null, t_2 = null; private JScrollBar bar_1 = null, bar_2 = null; private JScrollPane dataGraphScrollPane = null, ratioGraphScrollPane = null; public Test() {
    t_1 = new JTextArea();
    t_2 = new JTextArea();
    String str = "1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30\r\n31\r\n32\r\n33\r\n34\r\n35\r\n36\r\n37\r\n38\r\n39\r\n40"; // 用JTextArea中的字符串代替你的图形,反正问题是滚动条,无所谓拉
    t_1.setText(str);
    t_2.setText(str);
    dataGraphScrollPane = new JScrollPane(t_1);
    ratioGraphScrollPane = new JScrollPane(t_2);
    bar_1 = dataGraphScrollPane.getVerticalScrollBar();
    bar_2 = ratioGraphScrollPane.getVerticalScrollBar();
    bar_1.addAdjustmentListener(new AdjustmentListener() {
    public void adjustmentValueChanged(AdjustmentEvent arg0) {
    int p_1 = bar_1.getValue();
    bar_2.setValue(p_1);
    }
    });
    bar_2.addAdjustmentListener(new AdjustmentListener() {
    public void adjustmentValueChanged(AdjustmentEvent arg0) {
    int p_2 = bar_2.getValue();
    bar_1.setValue(p_2);
    }
    });
    graphSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, dataGraphScrollPane, ratioGraphScrollPane);
    this.getContentPane().add(graphSplitPane);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(500, 200);
    this.setVisible(true);
    } public static void main(String[] args) {
    new Test();
    }
    }