2017-07-23 49 views
0

嘗試在JScrollPane中使用JTable。但問題是,每當我在表中添加另一行時,JFrame的尺寸都會增加,高度方面(下面的截圖供參考)。我不希望它這樣做。顯然,由於它位於滾動窗格中,因此如果我不斷向表中添加行,我希望實際顯示一個滾動條並用於向下滾動以查看錶中較低的值。在JScrollPane中使用JTable的問題

截圖:http://i.imgur.com/dUqQW7N.jpg

代碼:

String[] columns = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian"}; 

Object[][] data = { 
     {"Kathy", "Smith", "Snowboarding", 5, false}, 
     {"John", "Doe", "Rowing", 3, true}, 
     {"Sue", "Black", "Knitting", 2, false}, 
     {"Jane", "White", "Speed reading", 20, true}, 
     {"Joe", "Brown", "Pool", 10, false} 
}; 

searchBox = new JTextField(); 
searchButton = new JButton(); 
rentCarButton = new JButton(); 
rentedCarsButton = new JButton(); 
table = new JTable(data, columns); 
table.setPreferredScrollableViewportSize(table.getPreferredSize()); 
scrollPane = new JScrollPane(table); 

任何幫助將不勝感激。

+0

在您發佈的代碼中創建代碼後,您絕不會向表中添加任何內容。發佈一個完整的,最小化的例子來重現問題。 –

+0

這不是重點。重點不在於我將使用動態方法向表中添加行,而是滾動窗格和表格不按照我希望的方式執行。我已經測試了這個相同的解決方案,但是向「數據」對象多維數組添加了更多行,並且我看到JFrame正在伸展。我想要一個實際使用滾動窗格中的滾動條的解決方案。 – Jacob

+1

然後不要使用table.getPreferredSize()作爲首選的可滾動視口大小。該表的首選大小是允許其顯示其所有行的大小。使用你想要的固定尺寸。 –

回答

0

韋爾普答案就在我的面前,我只是改變的代碼

table.setPreferredScrollableViewportSize(table.getPreferredSize()); 

行至

table.setPreferredScrollableViewportSize(new Dimension(400, 100)); 

我覺得愚蠢。