Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/09/2012, 17:56
Avatar de Lawnder00
Lawnder00
 
Fecha de Ingreso: septiembre-2012
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Manejo de 2 o mas JFrames

Cita:
Iniciado por Ronruby Ver Mensaje
Claro, por que cuando se crea la ventana de abajo, el metodo que crea el panel no se ejecuta, por lo tanto panel equivale a null.

Lo que debes hacer es separar cada una de esas ventanas en clases diferentes y pasar una instancia de la ventana dependiente a la que ejecutara las acciones.

VentanaPanel vPanel = new VentanaPanel();
VentanaBotones vBotones = new VentanaBotones(vPanel);

Asi cuando se invoque el actionPerformed de VentanaBotones, tienes una instancia del panel pasada por el constructor y puedes por lo tanto manipular su panel.
Sigue sin funcionar o tal ves no supe como codificar lo que me dijiste soy nuevo en java :( hice esto


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);
}
}
}



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);
}
}





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);
}
}


La clase DibujoC la deje igual