Java-Draw背景问题 我想在框架的中间画我的背景图像。由于我的图像没有窗口大,我想放一个黑色背景
以下是我使用的代码:Java-Draw背景问题 我想在框架的中间画我的背景图像。由于我的图像没有窗口大,我想放一个黑色背景,java,background,paint,Java,Background,Paint,以下是我使用的代码: public void paint(Graphics g) { if(this.background != null) { int bounds_top = getHeight() / 2; int bounds_left = getWidth() / 2; int half_height = this.background.getHeight(null) / 2; int half_width
public void paint(Graphics g)
{
if(this.background != null)
{
int bounds_top = getHeight() / 2;
int bounds_left = getWidth() / 2;
int half_height = this.background.getHeight(null) / 2;
int half_width = this.background.getWidth(null) / 2;
g.drawImage(this.background, bounds_left - half_width, bounds_top - half_height, this.background.getWidth(null), this.background.getHeight(null), this);
this.setBackground(Color.black);
//this.setOpaque(false);
}
}
如果将帧设置为不透明,则显示图像,但背景为灰色。
如果我将“不透明”设置为false,则我的帧仅为黑色,不显示任何图像
因此,我的问题是,如何显示图像并具有背景?您正在将图像绘制到背景中,然后将背景颜色设置为黑色。尝试先将背景色设置为黑色,然后将图像绘制到背景色。否则,看起来像是在图像上绘制黑色。将图像绘制到背景,然后将背景颜色设置为黑色。尝试先将背景色设置为黑色,然后将图像绘制到背景色。否则,看起来像是在图像上画黑色。如果在JPanel子对象中这样做,请调用
setBackground(Color.black)在构造函数中编写>并在paintComponent
中实现代码,首先调用super.paintComponent(g)代码>用于黑色背景。如果您在JPanel儿童中执行此操作,请调用setBackground(Color.black)在构造函数中编写>并在paintComponent
中实现代码,首先调用super.paintComponent(g)黑色背景的代码>。我找到了一个小技巧来解决它:
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.BLACK);
g2.fill(new Rectangle2D.Double(0, 0, getWidth(), getHeight()));
g.drawImage(this.background, bounds_left - half_width, bounds_top - half_height, this.background.getWidth(null), this.background.getHeight(null), this);
这很有效。我找到了一个小技巧来解决它:
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.BLACK);
g2.fill(new Rectangle2D.Double(0, 0, getWidth(), getHeight()));
g.drawImage(this.background, bounds_left - half_width, bounds_top - half_height, this.background.getWidth(null), this.background.getHeight(null), this);
这很好。我尝试将挫折置于drawImage之前,但结果与之前相同。我尝试将挫折置于drawImage之前,但结果与之前相同