3
該代碼把一個JTable成一個JFrame(整個UI的鞋底組件):當我調整JFrame的大小時,如何保留JTable的列的大小?
JFrame frame = new JFrame("Title");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTable table = appender.createTable();
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
我也有一些碼來設置的列的優選大小。
沒什麼特別的。當用戶界面打開時,表格佔據整個視圖,而我沒有滾動條。列的組合首選寬度需要比窗口寬的更多的水平空間。儘管如此,沒有水平滾動條,列太窄。
我有什麼做
- 列仍然由用戶
- 當前寬度可調整大小的被尊重?即當我改變一列的寬度時,其他列的寬度不應該改變。
已經看到了這個問題,預計從某人那裏得到快速回答,並且一天結束讓我太慢而無法與之競爭。我只是將此鏈接添加到[swing教程](http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/components/table.html#width)以及相應的[javadoc ](http://tinyurl.com/2emgeb3) – Gnoupi 2010-07-27 15:28:08
添加中間JPanel有什麼好處?我看不到列,表,滾動窗格或框架行爲的差異。 – bobndrew 2010-07-28 08:48:41
我以爲我讀了一些關於你想要保持表的總大小不變(但我可能是錯的)。無論如何,當您使用BorderLayout將滾動窗格添加到框架時,滾動窗格的大小隨着框架大小的變化而變化。但是,您首先將面板添加到面板(默認情況下使用FlowLayout),表格的大小將得到遵守。如果您將這個面板添加到框架中,那麼當您調整框架大小時,面板將更改大小,但表格大小不會更改。 – camickr 2010-07-29 00:55:12