[英]Java Adding JScrollPane to JComponent
Java:我有一个JComponent可以绘制可以重新缩放的图像。 我需要有当图像变大时将出现的滚动条。 我将JComponent传递给JScrollPane,然后将JScrollPane添加到我的JFrame的北部,但是滚动条仅在调整JFrame的大小时出现,而不是在调整图像大小时出现。 我还设置了JComponent的首选大小,但是没有用。
我尝试先将JComponent添加到JPanel,然后再将JPanel传递到JScrollPane,但这也不起作用。
这是JFrame构造函数中的部分代码:
JComponent component = new JComponent() {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(image1, zoom, this);
}
};
component.setPreferredSize(new Dimension(800, 600));
JScrollPane scroller = new JScrollPane(component);
add(scroller, BorderLayout.CENTER);
覆盖JScrollPane
getPreferredScrollableViewportSize
重写getPreferredSize
而不是component.setPreferredSize(new Dimension(800, 600));
返回JPanel
Dimension
必须大于JViewport
Dimension
(从JScrollPane
可见的Rectangle
),否则将不显示JScrollBar
为了早日获得更好的帮助,请在JScrollPane
带有JComponent
的SSCCE ,简短,可运行,可编译的JFrame
添加super.paintComponent(g);
作为第一。 paintComponent
内的代码行,从getHeight
/ Weight
获得的zoom_in / out坐标(请参阅第2点,关于getPreferredSize
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.