I can't figure out on how to fix the problem. Please help me. Thank you.
Here are the codes:
package com.gabriel.mvc.app;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import com.gabriel.mvc.shapeimpl.CarRenderer;
import com.gabriel.mvc.shapesfx.MyShape;
import com.gabriel.mvc.shapesfx.Renderer;
public class CarView extends JFrame {
Image image;
MyShape car;
Renderer renderer = new CarRenderer();
void init(MyShape car) {
this.car = car;
}
void initUI() {
setVisible(true);
image = new ImageIcon("2284910.jpg").getImage();
setBounds(300,100,500,500);
setSize(500,500);
}
public void paint(Graphics g)
{
g.clearRect(0,0,600,600);
g.drawImage(image, 0, 0, null);
renderer.draw(g, car);
}
}
Here's the output, only solid color. Image not set as background. :(
You may refer on this code just replace your image source and add your CarRenderer after the drawImage method of Graphics.
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import java.awt.Image;
import java.awt.Graphics;
public class SampleImageBg extends JFrame{
private JDesktopPane panel;
public SampleImageBg() {
panel = new javax.swing.JDesktopPane() {
private Image image;
{
try {
image = ImageIO.read(getClass().getResource("bg.jpeg"));// source of your background image
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
g.clearRect(50,0,300,300); // add your renderer here instead
}
};
add(panel);
setVisible(true);
setSize(400, 600);
}
public static void main(String[] args) {
new SampleImageBg();
}
}