JPanel 内に JTable があります。テーブルの最大行数は 10 です。テーブルの行に基づいて、JPanel のサイズを変更する必要があります。scrollPane を取得するべきではありません。
簡単に言うと、テーブルのサイズに基づいて、パネルのサイズを変更する必要があります。これは可能ですか?
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);
}
}
jtable.getPreferredSize()
妥当な結果を返す必要があると思います。失敗した場合は、テーブルのフォント メトリックとテーブルのデフォルトの行の高さを使用してサイズを見積もることができます。