如何使用单个滚动条滚动两个或更多JTable?

Tyr*_*eus 3 java swing jtable jscrollpane

如何使用一个滚动JScrollPane来移动另一个或多个滚动JScrollPane

例如:

我有三个JTable独立的JScrollPanes.我想滚动窗格绑定到彼此.

如果我将使用一个 - 另一个将以相同的方式滚动.

某种Listener我无法找到的?

任何sugestions?

最好的祝福.

Dav*_*amp 9

保留JTables'标题的方法是BoundedRangeModel对每个JScrollPane垂直滚动条使用相同的方法,并将每个ScrollPane添加到单个JPanel.

class ParallelTables {
    static JScrollPane createTable() {
        DefaultTableModel model = new DefaultTableModel(100, 2);
        for (int row=model.getRowCount(); --row>=0;) {
            model.setValueAt(row, row, 0);
        }
        JTable table = new JTable(model);
        return new JScrollPane(table);
    }

    public static void main(String[] args) throws Exception {

        JScrollPane scrollerA = createTable();
        JScrollPane scrollerB = createTable();
        scrollerA.setVerticalScrollBarPolicy(
                JScrollPane.VERTICAL_SCROLLBAR_NEVER);
        // the following statement binds the same BoundedRangeModel to both vertical scrollbars.
        scrollerA.getVerticalScrollBar().setModel(
                scrollerB.getVerticalScrollBar().getModel());
        JPanel panel = new JPanel();
        panel.add(scrollerA);
        panel.add(scrollerB);
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

参考: