我在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