正如标题所示,我试图在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)(最小完整和可验证示例)。 –