ayuda con un ejercicio

Iniciado por jos3, 12 Noviembre 2008, 06:19 AM

0 Miembros y 1 Visitante están viendo este tema.

jos3

hola!
la ayuda que nesecito es sobre como puedo hacer para que con este ejercicio que cuando yo elija circulo se cree uno y lo pueda hacer grande o pequeño y que se mueva de derecha a izquierda ó si yo eligiera el cuadrado hiciera lo mismo pero con un cuadrado...yo ya lo tengo hecho con un circulo pero no se como hacer para cuando de click en cuadro lo cree y elimine el circulo....esta es una imagen de lo que tengo y donde tengo que dar click para cree el cuadro...


*aca esta link de la imagen por si no se ve! http://img528.imageshack.us/my.php?image=prograjq2.jpg

y aqui les dejo el codigo
Código (java) [Seleccionar]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MenuGlobo extends Frame implements WindowListener, ActionListener{
private Globo miGlobo;
private MenuItem agrandarItem,reducirItem;
private MenuItem izquierdaItem,derechaItem;
private MenuItem cuadradoItem,circuloItem;
   
   
    public static void main(String[] args) {
    Frame f= new MenuGlobo();
    f.setSize(200,200);
    f.setVisible(true);   
    }
   
    public MenuGlobo(){
    setTitle("Globo");
    setLayout(new FlowLayout());
   
    MenuBar menuBarra = new MenuBar();
   
    Menu figuraMenu = new Menu("Figura");
   
    cuadradoItem = new MenuItem("Cuadrado");
    figuraMenu.add(cuadradoItem);
    cuadradoItem.addActionListener(this);
   
    circuloItem = new MenuItem("Circulo");
    figuraMenu.add(circuloItem);
    circuloItem.addActionListener(this);
   
    menuBarra.add(figuraMenu);
   
    Menu tamañoMenu = new Menu("Tamaño");
   
    agrandarItem = new MenuItem("Agrandar");
    tamañoMenu.add(agrandarItem);
    agrandarItem.addActionListener(this);
   
    reducirItem = new MenuItem("Reducir");
    tamañoMenu.add(reducirItem);
    reducirItem.addActionListener(this);
   
    menuBarra.add(tamañoMenu);
    Menu moverMenu = new Menu("Mover");
   
    izquierdaItem = new MenuItem("Izquierda");
    moverMenu.add(izquierdaItem);
    izquierdaItem.addActionListener(this);
   
    moverMenu.addSeparator();
   
    derechaItem = new MenuItem ("Derecha");
    moverMenu.add(derechaItem);
    derechaItem.addActionListener(this);
   
    menuBarra.add(moverMenu);
    setMenuBar(menuBarra);
   
   this.addWindowListener(this);
   
    miGlobo = new Globo(20, 50, 50);
    }
   
    public void actionPerformed(ActionEvent event){
    if (event.getSource()==agrandarItem)
    miGlobo.cambiarTamaño(10);
    if (event.getSource()==reducirItem)
    miGlobo.cambiarTamaño(-10);
    if (event.getSource()==izquierdaItem)
    miGlobo.moverIzquierda();
    if (event.getSource()==derechaItem)
    miGlobo.moverDerecha();
    repaint();
    }
   
    public void paint (Graphics g){
    miGlobo.mostrar(g);
    }
    public void windowClosing(WindowEvent e){
    System.exit(0);
    }
    public void windowIconified(WindowEvent e){
    }
   public void windowOpened(WindowEvent e){
    }
   public void windowClosed(WindowEvent e){
    }
   public void windowDeiconified(WindowEvent e){
    }
   public void windowActivated(WindowEvent e){
    }
   public void windowDeactivated(WindowEvent e){
    }
   
    class Globo {
    private int diametro;
    private int xCoord, yCoord;
   
   
   
   
    Globo(int diametroInicial, int xInicial, int yInicial){
    diametro = diametroInicial;
    xCoord = xInicial;
    yCoord = yInicial;
    }
   
    public void cambiarTamaño (int cambio){
    diametro = diametro + cambio;
    }
    public void moverIzquierda(){
    xCoord = xCoord - 10;
    }
    public void moverDerecha(){
    xCoord = xCoord + 10;
    }
    public void mostrar (Graphics g){
    g.setColor(Color.red);
    g.drawOval( xCoord, yCoord,diametro,diametro);
    g.fillOval( xCoord, yCoord,diametro,diametro);
   
   
    }
   
    }
}

jos3

perdon el doble post pero por favor alguien que me ayude!


saludos y espero no molestar a nadie!

joseprox

te voy a ayudar en algo....Bueno mi vale......lo que quiere es que cuando hagas una primera imagen esta se quite cuando quieras colocar la segunda......eso es lo que supongo que quieres.....

mira....java te provee de muchas facultades......vi tu codigo...y lo que hces es hace un dibujo en un panel por ejemplo.....y luego que subes el otro este se ecribe en el mismo panel......esa es la cagada.....

te doy esta sugerencia....create un vector (la clase Vector)...que guarde el dibujo que haces primero....luego que quieras hacer el segundo dibujo este se guardará en la siguiente posicion....veras que otra visio del proyecto por que podes tener una especie de control z (Ctrl+z) retro.....tira  craneo y veras lo que te digo...

ahora escribe al mail y te paso uno que hice cuando estaba en la universidad
    joseprox@gmail.com
.....te identificas con jo3+hacker.net para saber que me escribiste....ok

joseprox......Ingeniero de Sistemas----

Toda persona tiene derecho a cometer errores...
la verdad es q solo ella es RESPONSABLE DE LO QUE HACE.....!!!!!

jos3

mmmmm yo creo que no entendiste bien lo que nesecito hacer....
ahi en la imagen que adjunte ahi hice una flecha señalando que cuando de click ahi se cree esa figura o si le doy click a la otra cree esa figura....


saludos

joseprox


Bueno mi vale....realice una modificaciones y agrege otro objeto llamado miCuadro
ahi...tambien tiene un variable llamada idFigura...la cual identifica cua imagen quieres......ya sea circulo o cuadrado....chequeate el codigo este y me dices si es como lo quieres........espero de te sirva.........

atte....joseprox.....Ingeniero de sistemas....


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

public class MenuGlobo extends Frame implements WindowListener, ActionListener{   

private Globo miGlobo;   
private Globo miCuadro;   
private MenuItem agrandarItem,reducirItem;   
private MenuItem izquierdaItem,derechaItem;   
private MenuItem cuadradoItem,circuloItem;     

int idfigura = 0; //esta variable te identifica la figura que vas a colocar

public static void main(String[] args) {       

  Frame f= new MenuGlobo();       
  f.setSize(200,200);       
  f.setVisible(true);          
}

public MenuGlobo(){       
  setTitle("Globo");
  setLayout(new FlowLayout());     
 
  MenuBar menuBarra = new MenuBar();        
  Menu figuraMenu = new Menu("Figura"); 
  cuadradoItem = new MenuItem("Cuadrado");       
  figuraMenu.add(cuadradoItem);       
  cuadradoItem.addActionListener(this);        
  circuloItem = new MenuItem("Circulo");       
  figuraMenu.add(circuloItem);       
  circuloItem.addActionListener(this);        
  menuBarra.add(figuraMenu);        
  Menu tamañoMenu = new Menu("Tamaño");        
  agrandarItem = new MenuItem("Agrandar");       
  tamañoMenu.add(agrandarItem);       
  agrandarItem.addActionListener(this);        
  reducirItem = new MenuItem("Reducir");       
  tamañoMenu.add(reducirItem);       
  reducirItem.addActionListener(this);        
  menuBarra.add(tamañoMenu);       
  Menu moverMenu = new Menu("Mover");        
  izquierdaItem = new MenuItem("Izquierda");       
  moverMenu.add(izquierdaItem);       
  izquierdaItem.addActionListener(this);        
  moverMenu.addSeparator();        
  derechaItem = new MenuItem ("Derecha");       
  moverMenu.add(derechaItem);       
  derechaItem.addActionListener(this);        
  menuBarra.add(moverMenu);       
  setMenuBar(menuBarra);   
  this.addWindowListener(this);          
  miGlobo = new Globo(0, 0, 0);   
  miCuadro = new Globo(0,0,0,0);   
 
  }     
 
  public void actionPerformed(ActionEvent event){       
 
  if(event.getSource().equals(circuloItem)){
     miGlobo.FuncionColocarCirculo(20,50,50);
     miCuadro.FuncionColocarCuadrado(0,0,0,0);
     idfigura = 1; // circulo
  }
 
  if(event.getSource().equals(cuadradoItem)){
     miGlobo.FuncionColocarCirculo(0,0,0);
     miCuadro.FuncionColocarCuadrado(30,50,50,50);
     idfigura = 2; // cuadrado
  }
 
 
  if (event.getSource().equals(agrandarItem)){
 
      if(idfigura == 1)
      miGlobo.cambiarTamaño(10);
     
     
      if(idfigura == 2)       
      miCuadro.cambiarTamañocuadro(10);
  }          
 
  if (event.getSource().equals(reducirItem)){
 
      if(idfigura == 1)
      miGlobo.cambiarTamaño(-10);
     
     
      if(idfigura == 2)       
      miCuadro.cambiarTamañocuadro(-10);
  }             
 
  if (event.getSource().equals(izquierdaItem)){
     if(idfigura == 1)
      miGlobo.moverIzquierda();       
   
    if(idfigura == 2)
      miCuadro.moverIzquierda();       
     
  }          
 
  if (event.getSource().equals(derechaItem)){
     if(idfigura == 1)
       miGlobo.moverDerecha();       
      
     if(idfigura == 2)
       miCuadro.moverDerecha();        
  }          
     
     
      repaint();   
 
  }     
 
  public void paint (Graphics g){       
     if(idfigura == 1)
     miGlobo.mostrar(g,idfigura);       
     
     if(idfigura == 2)
     miCuadro.mostrar(g,idfigura);       
     
  }      
 
  public void windowClosing(WindowEvent e){       
  System.exit(0);       
 
  }
  public void windowIconified(WindowEvent e){}
  public void windowOpened(WindowEvent e){}
  public void windowClosed(WindowEvent e){}
  public void windowDeiconified(WindowEvent e){}
  public void windowActivated(WindowEvent e){}
  public void windowDeactivated(WindowEvent e){}
 
  class Globo {         
 
  private int diametro;         
  private int xCoord, yCoord;          
  private int xCoord1, yCoord1;          
 
  //globo para circulo   
  Globo(int diametroInicial, int xInicial, int yInicial){
        diametro = diametroInicial;         
        xCoord = xInicial;         
        yCoord = yInicial;
  }          
  //globo para cuadrado
  Globo(int xInicial, int yInicial,int x1Inicial, int y1Inicial){
        xCoord = xInicial;         
        yCoord = yInicial;
        xCoord1 = x1Inicial;         
        yCoord1 = y1Inicial;
  }
 
  public void FuncionColocarCirculo(int diametroInicial, int xInicial, int yInicial){
         diametro = diametroInicial;         
        xCoord = xInicial;         
        yCoord = yInicial;
  }
 
  public void FuncionColocarCuadrado(int xInicial, int yInicial,int xCoord1inicial,int yCoord1inicial){
         xCoord = xInicial;         
        yCoord = yInicial;
        xCoord1 = xCoord1inicial;         
        yCoord1 = yCoord1inicial;
  }
 
 
  public void cambiarTamaño (int cambio){
 
       diametro = diametro + cambio;      
  }         
 
  public void cambiarTamañocuadro(int cambio){
       xCoord1 = xCoord1+cambio;         
       yCoord1 = yCoord1+cambio;     
     }
     
 
 
  public void moverIzquierda(){
     xCoord = xCoord - 10;
  }         
 
  public void moverDerecha(){
   xCoord = xCoord + 10;         
  }         
 
  public void mostrar (Graphics g,int idfigura){            
 
   if(idfigura == 1){
    g.setColor(Color.red);            
    g.drawOval( xCoord, yCoord,diametro,diametro);            
    g.fillOval( xCoord, yCoord,diametro,diametro);           
   }
   
   if(idfigura == 2){
     g.setColor(Color.blue); 
     g.drawRect(xCoord,(20+yCoord),xCoord1+10,yCoord1+10);
     g.fillRect(xCoord,(20+yCoord),xCoord1+10,yCoord1+10);
   }
  }
}//Fin de la clase Globo


//clase cuadrado


}
Toda persona tiene derecho a cometer errores...
la verdad es q solo ella es RESPONSABLE DE LO QUE HACE.....!!!!!

jos3

ohhhhhhhhh muchisisisisisisisimas gracias ya me funciono!!!!