簡體   English   中英

如何在JPanel中居中對齊背景圖像

[英]How to center align background image in JPanel

我想將背景圖片添加到我的JFrame
背景圖像意味着我以后可以在JFrameJPanel上添加組件
雖然我找不到如何將背景圖像添加到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM