我在JPanel内部有一个JTable。表中的最大行数是10.根据表行,我需要调整JPanel的大小。我不应该得到任何scrollPane。根据内部组件调整JPanel的大小
所以,要简单:基于表的大小,我应该调整面板的大小。这可能吗?
我在JPanel内部有一个JTable。表中的最大行数是10.根据表行,我需要调整JPanel的大小。我不应该得到任何scrollPane。根据内部组件调整JPanel的大小
所以,要简单:基于表的大小,我应该调整面板的大小。这可能吗?
我相信应该返回一个合理的结果。如果tat失败,则可以使用表字体指标和tabes默认行高来估计大小。
不需要字体指标,rowheight就是你以后的样子(使用和不使用数据)。 – kleopatra 2012-07-24 09:10:17
*打头*,是的,你的权利,它应该是rowHeight&rowCount +1 fir保持我在我的脚趾(也+1为您的开放意识) – MadProgrammer 2012-07-24 09:17:41
1.in这种情况下是最好的GridBagLayout
标准LayoutManagers
为JTable
放置在JPanel
并且不使用JScrollPane
2.notice JTable
通过默认不支持上行调整大小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);
}
}
应该是可能的。只需获取表格大小及其属性并根据它设置jpanel。 – CyrillC 2012-07-24 08:49:52
当Jpanel加载时,表格将不会加载。用户将浏览和选择文件。当面板加载时不会是任何表格。只有在用户浏览并添加文件时,我们才会添加表格。 – user1548065 2012-07-24 08:53:16
这是LayoutManager的任务 - 阅读swing标签中引用的教程中的相应章节 – kleopatra 2012-07-24 08:54:44