如何居中对齐JPanel中的背景图像

美洲虎

我想将背景图片添加到我的JFrame
背景图像的手段我可以在以后添加组件JFrameJPanel
虽然我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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章