Nao consigo add paintComponent

algem sabe por que não consigo adicionar a classe na frame como o método add??

public class main extends JPanel {

	public static final int WIDTH = 640;
	public static final int HEIGHT = 480;

	public static void main(String[] args) {

		JFrame frame = new JFrame();
		Logica l = new Logica();
		frame.setSize(WIDTH, HEIGHT);
		frame.setResizable(false);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// ??????
		frame.add(l);

		frame.setVisible(true);

	}

}

package revisao;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

public class Logica {

	public BufferedImage img;
	public Graphics2D g2;



	public Logica(){
		img = new BufferedImage(main.WIDTH, main.HEIGHT, BufferedImage.TYPE_INT_RGB);
		g2 = (Graphics2D)img.getGraphics();
	}




	public void playGame(){
		this.draw();
	}


	public void draw(){
		g2.setColor(Color.WHITE);
		g2.fillRect(0, 0, main.WIDTH, main.HEIGHT);
		g2.setColor(Color.BLACK);
		g2.fillOval(20, 20, 20, 30);
	}

	public void paintComponent(Graphics g){
		g.drawImage(img, 0,0,null);
	}


}

Pq Logica não é um componente.

1 curtida

O método add() da classe JFrame espera um objeto derivado de Component. Você não pode criar uma classe qualquer e passar para o add().

Abraço.

1 curtida

entendi obrigado