elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Java [Guía] Patrones de diseño - Parte 1


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  CERRADO
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: CERRADO  (Leído 3,328 veces)
Norbs

Desconectado Desconectado

Mensajes: 10



Ver Perfil
CERRADO
« en: 22 Noviembre 2008, 16:30 »

cerradooo


« Última modificación: 11 Diciembre 2008, 00:44 por Norbs » En línea

joseprox

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Re: MOVER UN CUBO EN JAVA =S
« Respuesta #1 en: 23 Noviembre 2008, 02:08 »

Mi vale.....dos cosas......

primero...no trabajes y nunca lo hagas......TRABAJAR DIBUJOS GRAFICOS CON JAVAX.SWING........este paquete no soporta el paint y repaint...debes haccerlo con el paquete de la AWT....

segundo.....te cambié el codigo.....se mueve el cubo.....mientras muevas el mouse........cuando pikes en algun lado.....(en esa posicion se queda un cuadro..).

chequeate el codigo espero te sirva......


package Cubo;

 import java.awt.*;
 import java.util.*;
 import java.awt.event.*;
 import javax.swing.*;
 
public class Cubo extends Frame implements MouseMotionListener, MouseListener
{
  int x=100,y=400,width=90,height=90,ancho=10,alto=10,ban=0;
  int m=0,b=0;
  Point punto = new Point();
 
  TextField jt = new TextField();
  Panel paneldelCuadro = new Panel();
  Panel panelGeneral = new Panel();
 
  GraficaPanel graficapanel = new GraficaPanel();
   
    int enX = 0;
    int enY = 0;
   
    public Cubo(){   
       
       
        setLayout(new BorderLayout (50,20));
         
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
       enX = (int)d.getWidth();
       enY = (int)d.getHeight();
       
       
       
        jt.setFont(new Font("ARIAL",1,14));
        jt.setBounds(10,10,(enX-30),30);
       jt.setPreferredSize(new Dimension(20,30));
       
       add(jt,BorderLayout.NORTH);
       
       graficapanel.addMouseMotionListener(this);
       graficapanel.addMouseListener(this);
       
       
       add(graficapanel,BorderLayout.CENTER);
       add(new JLabel(""),BorderLayout.EAST);
       add(new JLabel(""),BorderLayout.WEST);
       add(new JLabel(""),BorderLayout.SOUTH);
       
       //this.setMinimumSize(new Dimension(400,50));
       setSize(enX,enY-30);
        show();
       addWindowListener(new WindowAdapter(){
        public void windowClosing(WindowEvent we){
           System.exit(0);
        }
     });
         
    }
   
   
   
   
    public void mouseReleased(MouseEvent e){
          System.out.println ("click en ");
       }
 
    public void mouseDragged(MouseEvent e)
    {         
       /*if( e.getX()>55&&e.getX()<530 && e.getY()>55&&e.getY()<500)
         setLocation((int)(e.getX()-punto.x),(int)(e.getY()-punto.y)); */
         
           
    }   
   
    public void mousePressed(MouseEvent e){
   
       graficapanel.guardarenVector();
   
    }
    public void mouseEntered(MouseEvent e){}
    public void mouseExited(MouseEvent e){}   
    public void mouseClicked(MouseEvent e){}
    public void mouseMoved(MouseEvent e){
     
     jt.setText("enX = "+e.getX() +" - "+"enY = "+e.getY());
     
     //graficapanel.EstablecerPuntos(0,0,0,0);
     graficapanel.EstablecerPuntos(e.getX(),e.getY(),50,50);
     //repaint();
    }
   
    /* public void paint(Graphics g){
       graficapanel.mostrar(g);
    }*/
   
    public static void main(String ars[]){
     new Cubo();
     
    }
     
}
 
 class GraficaPanel extends Panel {
    
    int x = 0;
    int y = 0;
    int x1 = 0;
    int y1 = 0;
    
    boolean activada;
    
    Graphics gr;
    
    //este vector guardara un cuadro cada ves que se dé un
    //click en el panes
    Vector vector = new Vector();
    
    public GraficaPanel(){
       
       //this.setBackground(Color.CYAN);
       
       }
    
    public void EstablecerPuntos(int xIni,int yIni,int x1Ini,int y1Ini){
       x = xIni;
       y = yIni;
       x1 = x1Ini;
       y1 = y1Ini;
       
       
       repaint();
    }
    
    public void guardarenVector(){
       activada = true;
       Datos datos = new Datos(x-(x1/2),y-(y1/2),x1,y1);
       vector.addElement(datos);
       //repaint();
    }
   
    public void mostrar(Graphics g){
          
    }   
    
    public void paint(Graphics g){
       
        int X = (getWidth()/2)-5;
        int Y = (getHeight()/2)-5;
       
       g.setColor(Color.BLACK);
        g.drawRect(x-(x1/2),y-(y1/2),x1,y1);
        gr = g;
       
        g.setColor(Color.BLACK);
        g.drawLine(0,getHeight()/2,getWidth(),getHeight()/2);
       
        g.setColor(Color.BLUE);
        g.fillOval(x-(x1/2),y-(y1/2),x1,y1);
       
        //g.fillRect(x,y,x1,y1);
        //g.drawRect(10,10,100,100);
        for(int i=0;i<vector.size();i++){
          Datos datos = (Datos)vector.get(i);
          System.out.println (datos.x);
          g.drawRect(datos.x,datos.y,datos.x1,datos.y1);
          g.fillOval(datos.x,datos.y,datos.x1,datos.y1);   
        }
       
    }
    
 }
 
 class Datos{
    
    int x = 0;
    int y = 0;
    int x1 = 0;
    int y1 = 0;
    Graphics g;
    
    public Datos(int xIni,int yIni,int x1Ini,int y1Ini){
       x = xIni;
       y = yIni;
       x1 = x1Ini;
       y1 = y1Ini;
       
    }
 }
 




En línea

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


Desconectado Desconectado

Mensajes: 455


rie con demencia


Ver Perfil
Re: MOVER UN CUBO EN JAVA =S
« Respuesta #2 en: 23 Noviembre 2008, 08:38 »

De hecho si puedes el JPanel y el JFrame como dibujos aprovechando el Paint y Repaint. Solo debes incluir el import para el AWT tanto como para el Swing.
Recordar que JPanel deriva de Panel.
En línea

joseprox

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Re: MOVER UN CUBO EN JAVA =S
« Respuesta #3 en: 23 Noviembre 2008, 20:59 »

JUANCHO77......espero....que no os ofenda....
pero me parece...que la java.awt se hizo para soportar el paint() y repaint....

apesar de que la Javax.swing....es un paquete que tiene la mayoria de sus componentes extendidos de la AWT.....esta no soporta muy los componentes de dibujo.....simplemente por que fue crear para aplicaciones de escritorio......en vista que el modelo de awt se notaba muy rustico......o machucado....

te digo si querés, usar los compentes de dibujo.....te recomiendo que hagas un clase que extienda de Canvas para su aplicacion y funcion en sswing......

os dejo la duda......siga usando paint y  repaint en una aplicacion de javax.swing.....
En línea

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


Desconectado Desconectado

Mensajes: 455


rie con demencia


Ver Perfil
Re: MOVER UN CUBO EN JAVA =S
« Respuesta #4 en: 23 Noviembre 2008, 22:27 »

No digo que una o otra sea mas efectiva porque no me dedico a interfaces graficas. Solo decia que sigue siendo posible utilizar Paint() y repaint() en las componentes de javax.swing ya que son basicamente una extension del AWT. Sin embargo, me parece que no te expresas bien o estas confundido en algo: esos metodos paint y repaint que dices son usados siempre por todos los elementos para dibujarse en pantalla.
La invocacion
Código
  1. JButton boton= new JButton("kaka");
es una llamada que incluye al paint del frame o del panel para dibujar el boton en pantalla.

Saludos.
En línea

egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: MOVER UN CUBO EN JAVA =S
« Respuesta #5 en: 24 Noviembre 2008, 13:58 »

Que estan discutiendo
la cosa era mover un cubo
ademas si quieres usar algo solo debes importar las clases
necesarias.
si quieres usar el paint o repaint o update se puede tanto como awt y swing, solo necesitas ademas importar Graphics y porsia caso Color y remodificar esos metodos
yo recomiendo usar el JPanel y modificarles el paint y el update ya que el Canvas me a desilusionado con al momento de cambiarle tamaño y en compatibilidad con swing.
En línea

Norbs

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: MOVER UN CUBO EN JAVA =S
« Respuesta #6 en: 26 Noviembre 2008, 13:50 »

 gracias hermano!!  ::)
« Última modificación: 11 Diciembre 2008, 00:45 por Norbs » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cerrado
Java
alexkof158 1 1,052 Último mensaje 3 Junio 2012, 21:26
por Proteus1989
Forosweb cerrado alternativa
Desarrollo Web
huerto123 0 684 Último mensaje 24 Septiembre 2016, 22:11
por huerto123
cerrado « 1 2 »
Seguridad
Vorze 18 4,359 Último mensaje 14 Octubre 2016, 02:46
por kub0x
cerrado
Foro Libre
ganas.de.aprender 2 1,221 Último mensaje 12 Septiembre 2017, 20:18
por ganas.de.aprender
Tinypic ha cerrado
Foro Libre
e 6 422 Último mensaje 13 Septiembre 2019, 21:48
por B€T€B€
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines