Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2012, 15:13
Avatar de Lawnder00
Lawnder00
 
Fecha de Ingreso: septiembre-2012
Mensajes: 5
Antigüedad: 12 años, 4 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