我在JPanel中有一个JTable。表中的最大行数为10.根据表行,我需要调整JPanel的大小。我不应该得到任何scrollPane。
所以,简单来说:根据表格大小,我应该调整面板的大小。这可能吗?
答案 0 :(得分:1)
我相信jtable.getPreferredSize()
应该返回一个合理的结果。如果tat失败,您可以使用表格字体指标和tabes默认行高来估计大小。
答案 1 :(得分:1)
1.在这种情况下GridBagLayout
LayoutManagers
最适合JTable
JPanel
JScrollPane
而不使用JTable
2.notice 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);
}
}
上的行调整大小
{{1}}