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);
}
}
}
});
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);
}
}
}
});
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();
}
}