Paint component(swing)

travei legal…

não teria que aparecer um retangulo enorme na cor laranja ??
o que esta faltando neste código , ele compila mas não mostra nada.

 * @author jose
 */
import java.awt.*;
import javax.swing.*;
public class MyDrawPanel extends JPanel{

public void paintComponent(Graphics g){
g.setColor(Color.orange);
g.fillRect(20,50, 100, 100);

}
public static void main(String[] args){

MyDrawPanel m = new MyDrawPanel();
//m.paintComponent(Graphics g);
//m.paintComponent(g.fillRect(20,50,100,100));

}
}

sds

j.silvestre

funcionou…
ficou assim…

mas se alguém souber de uma forma melhor só postar.

 * @author jose
 */
import java.awt.*;
import javax.swing.*;
public class MyDrawPanel extends JPanel{

public void paintComponent(Graphics g){
g.setColor(Color.orange);
g.fillRect(20,50, 100, 100);

}
public static void main(String[] args){

MyDrawPanel m = new MyDrawPanel();
JFrame frame = new JFrame();
frame.getContentPane().add(m);
frame.setSize(300,300);
frame.setVisible(true);

}
}

sds

j.silvestre

Voce deve criar uma copia desse Graphics para desenhar.

public void paintComponent(Graphics g){
    Graphics2D g2d = (Graphics2D) g.create();
    g2d.setColor(Color.orange);
    g2d.fillRect(20,50, 100, 100);
    g2d.dispose();
}

Voce pode estender de um JFrame direto ao inves de estender de um JPanel e depois criar um JFrame.

ficaria mais ou menos assim:

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;
public class teste extends JFrame{
	
	
	public void paint(Graphics g){  
		
	g.setColor(Color.orange);  
	g.fillRect(20,50, 100, 100);  
	  
	}  
	
	public static void main(String[] args){ 
		
	teste m = new teste();
	m.setVisible(true);
	m.setSize(300,300);
		  
	
	}
	
}

Note que com essa mudança vc precisa mudar o metodo de desenho para paint() ao inves de paintComponent()

Valews…

j.silvestre