2011-11-09 22 views
2

我得到了一個使用默認佈局管理器(使用viewport.setViewPosition)正確滾動的JViewport,但是當我調用setLayout(null)時,這不再起作用。具有空佈局的JViewports?

任何想法?

如果需要,我可以提供代碼,但目前它非常混亂。

謝謝!

編輯:謝謝你的信息到目前爲止。我一直在使用空佈局,所以我可以絕對定位後來繪製的組件,在使用佈局管理器的同時,我可以使用這種方法嗎?

+4

在「我扔掉了我的魔杖,現在我想知道爲什麼我的咒語不再工作了」:-) – kleopatra

回答

7

只有在添加到滾動窗格中的組件的首選大小大於滾動窗格的大小時,才能使用滾動窗格。

當您使用空佈局時,首選大小爲0,所以滾動窗格不起作用。這就是爲什麼你應該使用佈局管理器。它將決定你的首選尺寸。

5

出於任何原因,請勿調用setLayout(null)。

每個組件都應該有一個LayoutManager,它決定了孩子的體型和位置。因此,請使用合適的LayoutManager或實施您自己的。

-2

如果您調用setLayout(null),那麼您需要 爲每個子項調用Component類的setbounds方法。 也調用重繪方法。

+3

孩子的setBounds()方法與滾動無關。 – camickr