我有一个JPanel
,我将其置于JScrollPane
内。我使用paintComponent()
手动绘制它,因为它被用作画布,我希望面板自动适应滚动窗格的宽度。然后我可以在绘画代码中使用getWidth()
来自动缩放以适应容器。但是,我希望能够手动设置首选高度,以便我使用滚动窗格的垂直滚动功能。
最好的方法是什么?如果我只能在绘图代码中获得滚动窗格的宽度,这显然仍然有效,但我不想用像getParent()
这样的hacky代码来破坏封装。
答案 0 :(得分:4)
让您的面板实现Scrollable:getScrollableTracksViewportWidth / Height控制视口如何分别处理水平/垂直维度中的大小调整。值true表示组件被强制为与视口相同的大小(即,不在该方向上滚动),因此getWidth()可以一致地用于缩放。
答案 1 :(得分:0)
我会让你的油漆代码用自己的水平宽度作为绘画的基础 然后设置滚动窗格,使其永远不会水平滚动,只是垂直滚动 这够好吗?现在看来太简单了,我已经输入了它!