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
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