Java如何创建可滚动的JTable组件?

要创建可滚动JTable组件,我们必须使用JScrollPane作为的容器JTable。除此之外,我们还需要将表自动调整大小模式设置为,JTable.AUTO_RESIZE_OFF以便在需要时由滚动窗格显示水平滚动条。如果我们不关闭自动调整大小模式,则将调整表的列大小以适合可用的窗口大小。

package org.nhooo.example.swing;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import java.awt.BorderLayout;
import java.awt.Dimension;

public class ScrollableJTable extends JPanel {
    public ScrollableJTable() {
        initializeUI();
    }

    private static void showFrame() {
        JPanel panel = new ScrollableJTable();
        panel.setOpaque(true);

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setTitle("Scrollable JTable");
        frame.setContentPane(panel);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(ScrollableJTable::showFrame);
    }

    private void initializeUI() {
        setLayout(new BorderLayout());
        setPreferredSize(new Dimension(400, 200));

        JTable table = new JTable(20, 20);

        // 关闭JTable的自动调整大小,以便JScrollPane将显示水平
        // 滚动条。
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

        JScrollPane pane = new JScrollPane(table);
        add(pane, BorderLayout.CENTER);
    }
}

以下是上面代码段的结果。