[英]what's the difference between class type variables or instantiating in a constructor/method
[英]What's the difference between the constructor of JScrollPane and its add method when use JTable class?
這些天我正在學習JTable類,我想在JFrame中顯示表頭。
當我的代碼像這樣
JScrollPane scrollPane = new JScrollPane(table); //table had been constucted;
沒事 但
當我的代碼像這樣
JScrollPane scrollPane = new JScrollPane();
scrollPane.add(table);
當我運行程序時,在JFrame中看不到任何數據。
我希望通過閱讀JScrollPane的源代碼並閱讀Java SE API文檔來找到一些東西,但是我沒有得到滿意的答復。 我所知道的就是add是從Container繼承的,而JScorllPane的構造函數有不同的實現。 但我不明白為什么。 :(
你能幫助我嗎 ? 非常感謝!
ps:這是StackOverflow上的第一個問題。 我是中國學生,我的英語不好。 如果有什么問題,請原諒。 再次3ks。
構造函數不會將JTable添加到JScrollPane,而是添加到其視口的視圖。
所以這:
JScrollPane scrollpane = new JScrollPane(jTable); // (1)
等效於:
JScrollPane scrollpane = new JScrollPane(); // (2)
scrollpane.setViewportView(jTable); // (3)
因此請注意,上面第(1)行中的構造函數調用不會將JTable添加到JScrollPane組件本身,因為如果這樣做,它將替換其視口,從而使JScrollPane無法操作。 相反,構造函數將組件添加到其JViewport。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.