Java - canvas en un JFrame

 
Vista:

canvas en un JFrame

Publicado por Leo99 (1 intervención) el 31/08/2006 23:45:39
hola a todos....
bueno soyun principiante en esto y tengo un pequeño problema y que no se como resolver y es el siguiente:
tengo que realizar un programa donde pueda dibujar a mano alzada, pero no puedo hacerlo en un applet, lo tengo que realizar en una ventana (JFrame), lo del dibujo ya esta, el problema es como hago para que el canvas quede dentro del JFrame osea que se visualize.... y obiviamente pueda dibujar.... aqui esta el codigo, ya he intentado miles de formas... aaaa lo del JComboBox es para los colores de la linea del dibujo, pero eso despues lo soluciono ;)

les agradesco la ayuda que me pudan dar


public class Dibujo extends JFrame {

JComboBox colores;
String s []={"Negro","Verde","Rojo","Azul" };
Cam c=new Cam();

public Dibujo() {

getContentPane().setLayout(null);
colores = new JComboBox(s);
colores.setBounds(new Rectangle(6, 10, 106, 15));
this.getContentPane().add(colores);
this.getContentPane().add(c);
}

public static void main(String[] args) {

Dibujo dibujo = new Dibujo();
dibujo.setSize(500,500);
dibujo.c.setVisible(true);
dibujo.setVisible(true);
}

class Cam extends Canvas implements MouseListener, MouseMotionListener {

Point pto[]=new Point [1000];
Point comienzo, fin;
int puntos=0;
boolean diblibre=false;
boolean presionado=false;

public Cam(){

addMouseListener(this);
addMouseMotionListener(this);
}

public void mousePressed(MouseEvent e){

presionado=false;
comienzo=new Point(e.getX(), e.getY());
}

public void mouseDragged(MouseEvent e){

if(diblibre){

pto[puntos]=new Point(e.getX(), e.getY());
puntos++;
repaint();
}
}

public void mouseReleased(MouseEvent event) {}
public void mouseExited(MouseEvent event) {}
public void mouseMoved(MouseEvent event) {}
public void mouseClicked(MouseEvent event) {}
public void mouseEntered(MouseEvent event) {}

public void piant(Graphics g){

if(diblibre){

for(int i=0; i<puntos-1; i++){

g.drawLine(pto[i].x, pto[i].y, pto[i+1].x, pto[i+1].y);
}
}
}
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:canvas en un JFrame

Publicado por chuidiang (950 intervenciones) el 01/09/2006 11:16:11
Hola:

Prueba a ponerle al canvas también un setBounds() después de añadirlo al Frame.

De todas formas, lo del layout null es un poco feo.

En http://www.chuidiang.com/chuwiki/index.php?title=Uso_de_Layouts tienes el por qué es feo el layout null.

En http://www.chuidiang.com/java/codigo_descargable/appletpaint.php tienes un paint parecido al que estás haciendo. Tienes el codigo tanto para Applet con Frame. Puedes fijarte como se usa el BorderLayout para que te quede más o menos como estás intentando hacer.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:canvas en un JFrame

Publicado por Ronald (7 intervenciones) el 04/09/2006 04:46:11
Los componenetes swing no deben mesclarce con los componetes del awt
Es recomendable dibujar sobre un JPanel.
Intenta pintar sobre un JPanel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar