[英]How to align components center in the JPanel using GridBagLayout?
[英]How to center align background image in JPanel
我想将背景图片添加到我的JFrame
。
背景图像意味着我以后可以在JFrame
或JPanel
上添加组件
虽然我找不到如何将背景图像添加到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
中心。
as 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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.