我有一個隨着用戶輸入數據而增長的表。我期望做的是將表放入某種類型的容器中,並添加一個滾動條,該滾動條在滾動時手動移動容器的視圖。我不想使用JScrollPane,因爲在過去的幾天裏我一直在努力讓它工作。我發現它不適用於空佈局,這似乎是唯一允許我的表正常打印的佈局。因此,我拋出了JScrollPane的想法,而是試圖實現編程滾動條本身的想法,它將視圖轉移到溢出的容器中。到目前爲止,我沒有在Web上發現任何可以改變Java容器視圖的東西。關於如何做到這一點的任何想法?JScrollPane不會將滾動條添加到動態增長表中
UPDATE:
按照建議,我將嘗試使用JScrollPane的滾動。所以新的問題是:爲什麼下面的代碼不工作?
背景:DataTable是我設計的一個類,它擴展了java.awt.Container,它包含一個充滿JLabels的網格。這個類包含addRow和addCol等方法來增加容器的大小來添加單元格,而且這個類還包含用於設置標籤值的方法。
我想要做的是將我的類放置在一個JScrollPane中,它具有可以滾動的靜態寬度和高度,以查看整個表的增長情況。
DataTable table = new DataTable(1,4,100,30); //creates table with 1 row (30px tall) and 4 columns (100px wide each)
table.setLocation(0, 0);
JScrollPane scroll = new JScrollPane(table);//scroll pane
scroll.setLayout(null);
scroll.setBounds(10, 50, 500, 100);
scroll.add(table);
Frame frame = new Frame();
frame.add(scroll);
frame.setLayout(null);
frame.setSize(600, 500);
frame.setVisible(true);
for (int i=0 ; i<20 ; i++) {
table.addRow();//add twenty rows to table
}
當我運行這段代碼時,沒有滾動條出現。爲什麼?我該如何解決這個問題? (即使我刪除了將JSrollPane的佈局設置爲null的行,代碼仍然不起作用,實際上,根本不顯示錶格)。
'因此,我拋出了JScrollPane的想法,而我試圖實現自己的編程滾動條的想法,它將視圖轉移到溢出的容器中。「不要花時間嘗試重新發明輪子。這種基本的支持已經存在於Swing中。如果某些東西不起作用,那麼問題出在您的代碼上,而不是Swing組件。 Swing旨在與佈局經理一起使用。如果您仍然遇到問題,請修復您的代碼以使用佈局管理器,然後發佈適當的[SSCCE](http://sscce.org/)。 – camickr
編寫代碼時使用適當的變量名稱。 「a,b,c,d ...」毫無意義。你的'SSCCE'在哪裏?您發佈的代碼不是「SSCCE」。你的發佈代碼是如何編譯的。另外'SSCCE'應該是使用佈局管理器的版本。不要使用空佈局! – camickr