2

我有 2 个问题需要问,第一个如何获得 JTable 的水平滚动,目前它缩小了所有不可读的列。我有 20 列要显示在表格中。

2,如何将我的表格高度宽度最大调整为我的屏幕尺寸。

我目前的代码是

Container cp = getContentPane();

            ConnectionDB con = new ConnectionDB();
            tableModel = con.getRecord(DEFAULT_QUERY);

    table = new JTable(tableModel);
    table.setPreferredScrollableViewportSize(new Dimension(900, 500));

    table.setFont(new Font("Tahoma", Font.PLAIN, 12));
    scrollPane = new JScrollPane(table);

    centerPanel.add(scrollPane, BorderLayout.CENTER);
    centerPanel.setBorder(BorderFactory.createTitledBorder("Books:"));
    cp.add("Center", centerPanel);

请帮助我,在此先感谢。

4

3 回答 3

10

为防止所有列都调整为ScrollPane大小,您可以禁用自动调整大小:

table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

将您添加ScrollPane到的中心BorderLayout应该将最大尺寸设置为屏幕尺寸,因为通常 JFrame 不能变大。

要将ScrollPanes ViewPort 的大小设置为屏幕大小,您可以使用 awt Toolkit

table.setPreferredScrollableViewportSize(Toolkit.getDefaultToolkit().getScreenSize());
于 2013-05-03T10:06:55.177 回答
1

添加您的JTable内部JScrollPane并设置滚动条。

new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

JTable适合屏幕尺寸的代码示例

public class TestJTableFitsScreenWidth {

    public static void main(String... args) {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                JFrame f = new JFrame();
                DefaultTableModel dtm = new DefaultTableModel(
                        new String[][]{
                            new String[] {"A", "B", "D"},
                            new String[] {"D", "E", "F"}
                        },
                        new String[] {"col1", "col2", "col3"});
                JTable table = new JTable(dtm);
                table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                f.getContentPane().setLayout(new BorderLayout());
                f.getContentPane().add(table, BorderLayout.CENTER);
                f.setVisible(true);
                f.pack();
            }
        });
    }
}
于 2013-05-03T09:45:20.610 回答
0

这可能会对您有所帮助。

        Dimension d = new Dimension(900, 800);
        tbl_transaction.setAutoResizeMode(tbl_transaction.AUTO_RESIZE_OFF);
        tbl_transaction.setPreferredSize(d);
        tbl_transaction.setPreferredScrollableViewportSize(d);
于 2014-07-02T12:58:33.120 回答