Foros del Web » Programación para mayores de 30 ;) » Java »

Error en codigo JFrames

Estas en el tema de Error en codigo JFrames en el foro de Java en Foros del Web. Este programa tiene que dibujar un "carro" en el JFrame principal llamado "macro" y ser controlado hacia la derecha o hacia la izquierda desde otro ...
  #1 (permalink)  
Antiguo 06/09/2012, 15:13
Avatar de Lawnder00  
Fecha de Ingreso: septiembre-2012
Mensajes: 5
Antigüedad: 11 años, 7 meses
Puntos: 0
Pregunta Error en codigo JFrames

Este programa tiene que dibujar un "carro" en el JFrame principal llamado "macro" y ser controlado hacia la derecha o hacia la izquierda desde otro JFrame llamado "macro2" pero no logro hacer que se mueva.

Cuando tenia todo en un solo JFrame si funcionaba pero cuando separe los botones ya no.

Ayuda!! Soy nuevo en java y tengo que entregar esto mañana.

Aquí esta el código con sus 4 Clases:
Imagen de las ventanas
Código HTML:
Ver original

Clase Ventana

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Ventana extends JFrame implements ActionListener{
public JButton boton1,boton2,boton3;
public JPanel panel;
public static int x1=100, x2=105, x3=130;
public static void main(String[] args){
VentanaI macro = new VentanaI();
macro.setSize(400,450);
macro.createGUI();
macro.setVisible(true);
macro.setTitle("Carrito Chingon");
VentanaB macro2 = new VentanaB();
macro2.setSize(400,80);
macro2.createGUI2();
macro2.setVisible(true);
macro2.setTitle("Controles");
}
@Override
public void actionPerformed(ActionEvent event){
Object origen = event.getSource();
if(origen==boton1)
{
Graphics papel = panel.getGraphics();
papel.setColor(Color.lightGray);
papel.fillRect(0, 0, 350, 350);
DibujoC Dc2 = new DibujoC();
Dc2.MoverI(panel);
}
else if(origen==boton3){

DibujoC Dc = new DibujoC();
Dc.Carro(panel);
}
else if(origen==boton2){
Graphics papel = panel.getGraphics();
papel.setColor(Color.lightGray);
papel.fillRect(0, 0, 350, 350);
DibujoC Dc3 = new DibujoC();
Dc3.MoverD(panel);
}
}
}

Clase DibujoC


import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;


public class DibujoC extends Ventana {
public DibujoC(){
}
public void Carro(JPanel panel){
Graphics papel = panel.getGraphics();
papel.drawRect(Ventana.x1, 100, 55, 30 );
papel.fillOval(Ventana.x2, 120, 20, 20 );
papel.fillOval(Ventana.x3, 120, 20, 20 );
}
public void MoverI(JPanel panel){
x1=x1-1; x2=x2-1; x3=x3-1;
Graphics papel = panel.getGraphics();
papel.drawRect(Ventana.x1, 100, 55, 30 );
papel.fillOval(Ventana.x2, 120, 20, 20 );
papel.fillOval(Ventana.x3, 120, 20, 20 );
}
public void MoverD(JPanel panel){
x1=x1+1; x2=x2+1; x3=x3+1;
Graphics papel = panel.getGraphics();
papel.drawRect(Ventana.x1, 100, 55, 30 );
papel.fillOval(Ventana.x2, 120, 20, 20 );
papel.fillOval(Ventana.x3, 120, 20, 20 );
}
}

Clase VentanaI

import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JPanel;

public class VentanaI extends Ventana{
public void createGUI(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new FlowLayout());
setLocation(500,40);
panel = new JPanel();
panel.setPreferredSize(new Dimension(350,350));
panel.setBackground(Color.lightGray);
window.add(panel);
}
}
Clase VentanaB

import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;

public class VentanaB extends Ventana {
public void createGUI2(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window2 = getContentPane();
window2.setLayout(new FlowLayout());
setLocation(500,500);
boton3 = new JButton("Carro");
window2.add(boton3);
boton3.addActionListener(this);
boton1 = new JButton("Adelante");
window2.add(boton1);
boton1.addActionListener(this);
boton2 = new JButton("Atras");
window2.add(boton2);
boton2.addActionListener(this);
}
}


Espero me puedan ayudar Gracias

Última edición por Lawnder00; 06/09/2012 a las 15:42
  #2 (permalink)  
Antiguo 06/09/2012, 15:47
 
Fecha de Ingreso: febrero-2012
Mensajes: 136
Antigüedad: 12 años, 2 meses
Puntos: 8
Respuesta: Error en codigo JFrames

Tio no te entiendo ....

en tu Codigo cual es macro y o macro dos

el problema si lo haz separado es que no esten escuchando tus bontes ...

Para mi es tus bontes estas añadiendo tus acciones con this ... pero this representa a tu clase actual ... no la clase que esta heredando ... revisa eso ...

No entiendo el proposito de heredar ....

espero que te aya ayudado

Última edición por AdvKael; 06/09/2012 a las 15:54
  #3 (permalink)  
Antiguo 06/09/2012, 15:57
Avatar de Lawnder00  
Fecha de Ingreso: septiembre-2012
Mensajes: 5
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Error en codigo JFrames

Cita:
Iniciado por AdvKael Ver Mensaje
Tio no te entiendo ....

en tu Codigo cual es macro y o macro dos

el problema si lo haz separado es que no esten escuchando tus bontes ...

Para mi es tus bontes estas añadiendo tus acciones con this ... pero this representa a tu clase actual ... no la clase que esta heredando ... revisa eso ...

No entiendo el proposito de heredar ....

espero que te aya ayudado
macro y macro 2 estan en la clase Ventana

aqui
...
VentanaI macro = new VentanaI();
macro.setSize(400,450);
macro.createGUI();
macro.setVisible(true);
macro.setTitle("Carrito Chingon");
VentanaB macro2 = new VentanaB();
macro2.setSize(400,80);
macro2.createGUI2();
macro2.setVisible(true);
macro2.setTitle("Controles");
...

lo que pasa es que cuando me crea las 2 ventanas y preciono un boton en la ventana macro2 me marca error y no corre nada, eso no me pasaba cuando todo estaba en una sola ventana.

intente eso de super.this pero no funciona igual :(
  #4 (permalink)  
Antiguo 07/09/2012, 08:55
 
Fecha de Ingreso: febrero-2012
Mensajes: 136
Antigüedad: 12 años, 2 meses
Puntos: 8
Respuesta: Error en codigo JFrames

Yo te recomiendo ..

que implementes el ActionLisenert en tu clase donde la necesitas .... y envies por referencia tu FRAME PRINCIPAL y asi manipules esta en por medio de los botones que estan en tu otro JFRAME


Analiza bien tio ... esta facil ...

Saludos

Etiquetas: clase, jar, jframes, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:16.