1

JPanel 内に JTable があります。テーブルの最大行数は 10 です。テーブルの行に基づいて、JPanel のサイズを変更する必要があります。scrollPane を取得するべきではありません。

簡単に言うと、テーブルのサイズに基づいて、パネルのサイズを変更する必要があります。これは可能ですか?

4

2 に答える 2

1

1.この場合、を使用せずに配置するのにGridBagLayout最適です。LayoutManagersJTableJPanelJScrollPane

2.noticeJTableはデフォルトで行のサイズ変更をサポートしていませんvertical direction

import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;

public class TableAndGbc {

    public static void main(String args[]) throws Exception {
        JPanel panel = new JPanel(new GridBagLayout());
        final JTable table = new JTable(10, 10);
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.weightx = 1.0;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        panel.add(table, gbc);
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(panel, BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }
}
于 2012-07-24T10:14:43.833 に答える
1

jtable.getPreferredSize()妥当な結果を返す必要があると思います。失敗した場合は、テーブルのフォント メトリックとテーブルのデフォルトの行の高さを使用してサイズを見積もることができます。

于 2012-07-24T08:57:06.553 に答える