正如標題所示,我試圖在JScrollPane
中使用JPanel
(因爲面板幾乎總是會溢出屏幕,所以我需要能夠滾動)。我有一個奇怪的問題,因爲PaintComponent
方法沒有按照我的預期進行繪製。我目前只是試圖用純色填充JPanel
,然而填充JPanel
實際上只是繪製未填充的框,因爲它部分填充但不完全填充。PaintComponent在JScrollPane中的JPanel上不能正常工作
我JPanel
代碼(請注意simPanel IS THE JSCROLLPANE
):
private class myPanel extends JPanel {
@Override
public void paintComponent (Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(0, 0, simPanel.getWidth(), simPanel.getHeight());
}
}
我WindowResizeListener
連接到JScrollPane
本身並運行下面的方法,到目前爲止,這似乎是正確的調整,因爲我有一直在使用print語句來獲取scrollpane的大小,並且在調整應用程序大小時它正變得越來越大/越來越小。
public void componentResized(ComponentEvent ce) {
myJPanel.setSize(simPanel.getSize());
}
這工作按預期如果JPane
升不添加到JScrollPane
(即它被添加到另一個JPanel
或類似),但JScrollPane
本身似乎並不想正確地作畫。我想知道是否有我缺少的東西。它看起來像我的JPanel
是正確的大小,因爲該框是在滾動窗格中的正確大小本身我不能填充它,即使我打電話給fillRect
。
編輯:我認爲這可能與ScrollPane的大小有關。我瞎搞與不同的佈局管理器的時刻,並注意到,滾動窗格很氣質,其規模和不斷搬回固定大小因某種原因......
爲了儘快獲得更好的幫助,請發佈[MCVE](http://stackoverflow.com/help/mcve)(最小完整和可驗證示例)。 –