2

質問する必要がある2つの問題があります.1つ目は、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

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 に答える