1

我在 JPanel 中有一个 JTable。表中的最大行数为 10。根据表行,我需要调整 JPanel 的大小。我不应该得到任何滚动窗格。

所以,简单地说:根据表格大小,我应该调整面板的大小。这可能吗?

4

2 回答 2

1

我相信jtable.getPreferredSize()应该返回一个合理的结果。如果 tat 失败,您可以使用表格字体度量和 tabes 默认行高来估计大小。

于 2012-07-24T08:57:06.553 回答
1

1.在这种情况下,GridBagLayout最好的标准LayoutManagersJTable放置JPanel和不使用JScrollPane

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 回答