我在 JPanel 中有一个 JTable。表中的最大行数为 10。根据表行,我需要调整 JPanel 的大小。我不应该得到任何滚动窗格。
所以,简单地说:根据表格大小,我应该调整面板的大小。这可能吗?
我相信jtable.getPreferredSize()
应该返回一个合理的结果。如果 tat 失败,您可以使用表格字体度量和 tabes 默认行高来估计大小。
1.在这种情况下,GridBagLayout
最好的标准LayoutManagers
是JTable
放置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);
}
}