Testei as dicas postadas, e observei uma coisa.
No primeiro código que postei, quando eu redimensiono a janela, ou altero seu tamanho, a tela de trás dos outros aplicativos que fora copiada (dando a impressão de estar transparente), some. Daí sim é possivel desenhar. E se for novamente redimensionada, a ocorrência do recorte na imagem.
O resultado final foi esse:
http://rpg-animes.50webs.com/teste.jpg
Só que como faço pra ele não copiar o fundo quando carrega e eu não ter q redimensionar a janela.
David, quanto ao Frame, que conta a medida da barra de título, há alguma apostilinha ou guia que possa me ensinar a explorar o JFrame de modo que minha tela não comece com a barra de título?
E quanto às dicas dadas eu agradeço, mas seguindo-as apareceu outro problema, o desenho não sai, mas sim um ponto que é apagado automáticamente e redesenhado, seguindo o cursor até eu parar. No caso, o resultado final esperado era um pincel, como aqueles do paint.
O novo código seguindo a dica que vocês me deram ficou assim:
[code]
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.;
import java.awt.;
import java.awt.event.*;
public class Desenho extends JPanel{
int posX = -10, posY = -10;
public void setCoords (int pX1, int pY1){
posX= pX1; posY = pY1;
}
protected void paintComponent(Graphics g) {
super.paintComponent( g );
g.fillRect (posX, posY, 5, 5);
}
}
class TesteDesenho extends JFrame {
Desenho desenho = new Desenho();
public TesteDesenho() {
super();
initialize();
}
private void initialize() {
this.setSize(800, 600);
this.setContentPane(folhaDesenho());
this.setTitle("Quase o Java Paint que tava tentando criar, rs");
this.setVisible(true);
}
private JPanel folhaDesenho() {
desenho.addMouseMotionListener(new MouseMotionAdapter() {
/**
* @see java.awt.event.MouseMotionAdapter#mouseDragged(java.awt.event.MouseEvent)
*/
public void mouseDragged(MouseEvent pE) {
int x1= pE.getX();
int y1= pE.getY();
desenho.setCoords(x1, y1);
repaint();
}
});
return desenho;
}
public static void main (String args []){
TesteDesenho td = new TesteDesenho();
td.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
td.setVisible(true);
}
}[/code]
Eu tô apanhando com programação, mas aos poucos eu vô apredendo.