style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

¿Objeto Jframe en clase Canvas?

Hola a todos soy nuevo miembro en este foro y me uní a la comunidad para aprender un poco más de este lenguaje bueno a lo que voy....

tengo esta clase :

public class LienzoAnimacion extends Canvas implements MouseListener{
    public int x1,y1;
    public int wakawaka;
    String s;
   
 

   
    LienzoAnimacion(){
    x1=25;
    y1=150;
    wakawaka=300;
    this.addMouseListener(this);
    setBackground(Color.RED);
    }
   
public void paint(Graphics c){
Graphics2D c2=(Graphics2D)c;
c2.setStroke(new BasicStroke(2.0f));

c.setColor(new Color(12,45,78));
c.fillOval(x1, y1, 100, 100);

c.setColor(new Color(89,123,45));

c.drawOval(x1, y1, 100, 100);

c.setColor(new Color(200,134,43));
c.setFont(new Font("Arial",Font.BOLD,40));
c.drawString("HELLO WORLD", wakawaka, 250);

}    

    @Override
    public void mouseClicked(MouseEvent e) {
 
    }

    @Override
    public void mousePressed(MouseEvent e) {
       
    }

    @Override
    public void mouseReleased(MouseEvent e) {
       
    }

    @Override
    public void mouseEntered(MouseEvent e) {
       
    }

    @Override
    public void mouseExited(MouseEvent e) {
       
    }
   
}

<code>

y tengo esta ventana :

<code>
public class VentanaAplicacion extends javax.swing.JFrame {
LienzoAnimacion la=new LienzoAnimacion();

Timer animacion,v;
boolean x,y,mx,my;

    /**
     * Creates new form VentanaAplicacion
     */

    public VentanaAplicacion() {
        initComponents();
     
        x=false ;
   
     
                y=true;
        la.setSize(400, 265);
        la.setLocation(1, 35);
        add(la);
       
<code>

Bueno iré al grano, lo que quiero hacer es crear un objeto de la clase VentanaAplicacion() para asi poder obtener acceso a los componentes y funciones el JFrame pero... El programa se cicla al hacer esto ya que como estoy agregando a Lienzo() y creo el objeto Lienzo en la ventana pues este vuelve a crear un Jframe que asu vez crea otro lienzo y asi por eso se cicla, ocupo un tipo puntero o apuntador para poder manejar esto o no se como lo vean gracias de antemano a todos

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de aalekxz

:P

ayudenme porfis

Imagen de neko069

Yo no entendí

Qué quieres lograr? pintar algo en el JFrame? o a qué te refieres con "poder obtener acceso a los componentes y funciones el JFrame"?

Ciclar?

Pues yo no veo en que parte de la clase LienzoAnimacion este creando un JFrame para la ventana "principal", por que dices que se cicla? En que momento haces visible el JFrame?

Estoy en el mismo curso que aalekxz

Se tienen dos clases separadas
LienzoAnimacion <--- Canvas
AnimacionVentana <------JFrame

El JFrame manda llamar al Canvas por medio de un objeto:
LienzoAnimacion l= new LienzoAnimacion();

Se necesita que en LienzoAnimacion se haga lo mismo (mandar llamar) pero por medio de un apuntador, ya que si creamos un nuevo objeto tipo AnimacionVentana dentro de LienzoAnimacion simplemente "truena", todo esto para acceder a las propiedades de la ventana (Titulo, posición, etc) desde LienzoAnimacion..

Algo así... xD

Imagen de neko069

Y no sería más fácil que

Y no sería más fácil que tuvieras una propiedad de tipo JFrame y en el constructor de LienzoAnimacion le pasaras una referencia del JFrame del que quieres tomar las propiedades?

Algo así:

private JFrame jFrame;

public LienzoAnimacion(JFrame jFrame){
    this.jFrame = jFrame;
}

Y ya con éso ya podrías hacer lo que necesitas ( espero haber entendido bien).

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">