我想将背景图片添加到我的JFrame
。
背景图像的手段我可以在以后添加组件JFrame
或JPanel
虽然我coudn't找到如何添加背景图像的JFrame
,
我发现了如何添加背景图像到JPanel
从这里:
如何在Java中设置背景图片?
这解决了我的问题,但是现在由于我JFrame
的大小可以调整,因此我想使图像居中。
我发现的代码使用此方法
public void paintComponent(Graphics g) { //Draw the previously loaded image to Component.
g.drawImage(img, 0, 0, null); //Draw image
}
任何人都可以说如何将图像对齐到图像的中心JPanel
。
正如g.drawImage(img, 0, 0, null);
提供x = 0和y = 0一样,
如果有一种将背景图片添加到的方法,JFrame
那么我想知道。
谢谢。
假设合适image
,您可以像这样居中:
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
int x = (this.getWidth() - image.getWidth(null)) / 2;
int y = (this.getHeight() - image.getHeight(null)) / 2;
g2d.drawImage(image, x, y, null);
}
如果希望其他组件随背景移动,则可以更改图形上下文的仿射变换以使图像居中,如此包含旋转的更完整示例所示。
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.translate(this.getWidth() / 2, this.getHeight() / 2);
g2d.translate(-image.getWidth(null) / 2, -image.getHeight(null) / 2);
g2d.drawImage(image, 0, 0, null);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句