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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27
121  Programación / Java / Re: importar libreria de java en: 21 Noviembre 2013, 20:02 pm
No será porque te falta la instrucción package al comienzo del archivo?

Osea es la única explicación valida que me doy... porque de por si el error es bastante extraño...

+1 a Ed. Quizás es porque no has especificado el package, porque en realidad nunca había visto que un paquete Java esté defectuoso xD

Como recomendación, siempre coloca tus clases en paquetes, que para esto están.

Saludos.
122  Programación / Java / Re: importar libreria de java en: 21 Noviembre 2013, 18:33 pm
¿No compila?

Dale Alt + Enter o clic en el error para ver qué opciones te da.
123  Programación / Java / Re: Juego de Adivinanza usando Random en: 21 Noviembre 2013, 12:43 pm
No estoy seguro, pero puedes usar una semilla en el constructor de Random para generar el mismo número:

Código
  1. double randomGenerator(long seed) {
  2.    Random generator = new Random(seed);
  3.    double num = generator.nextDouble() * (0.5);
  4.  
  5.    return num;
  6. }
  7.  

El objeto 6 puede hacer lo mismo para que hayan coincidencias. Pruébalo a ver si funciona.


Saludos.
124  Programación / Java / Re: Ayuda Java: Ingreso de X numero, si es mayor a 10 que se multiplique... en: 20 Noviembre 2013, 21:57 pm
Código
  1. public void pedirNumero() {
  2.  
  3.    System.out.println("Ingrese un numero o -1 para salir.");
  4.    while (true) {
  5.      Scanner into = new Scanner(System.in);
  6.      int numero = into.nextInt();
  7.  
  8.      if ( numero == -1 ) {
  9.         break;
  10.      }
  11.      if (numero > 10) {
  12.         System.out.println(numero*numero);
  13.      }
  14.      else {
  15.         System.out.println(numero);
  16.      }
  17.    }
  18. }
  19.  

La forma en que podrás realizar un algoritmo es razonando y practicando. No te recomiendo que pidas ayuda para cosas muy sencillas, trata hasta el último momento de hacerlas tú mismo. Saludos.
125  Programación / Java / Re: Duda con Jars en Eclipse en: 19 Noviembre 2013, 22:38 pm
El jar lanza ese error porque antes de exportar el proyecto no has especificado la clase Main en las propiedades del proyecto. Si lees el error: 'Could not locate main class', te lo dice todo.
126  Programación / Java / Re: error al imprimir la informacion de array en: 19 Noviembre 2013, 19:56 pm
Ya te han dado una respuesta sobre esto. Es lo mismo como si trataras de imprimir cualquier otro objeto, te imprimirá su hashcode.


Saludos.
127  Programación / Java / Re: almacenar datos de array en: 19 Noviembre 2013, 19:52 pm
Venga tío, eso no es cosa difícil. Ya te hemos dado un buen empujón con otros temas, trata de realizarlo un poco que así es como se aprende  ;)

PD: Puedes llenar una lista o array con números aleatorios por ejemplo  :silbar: . (ver Random).
128  Programación / Java / Re: Recibir teclado java en: 19 Noviembre 2013, 19:48 pm
Disculpa la demora, no he estado en el foro los últimos días.

Veo que no has podido realizarlo, bien aquí te dejo el code. Básicamente lo que hago es crear un JPanel y una Controladora de los Eventos, luego las asocio. Esto, para que los eventos se desencadenen sin interferir con la vista. Cuando se presiona una tecla, la capturo con getKeyChar(), luego en un switch comparo con los posibles resultados. Si es 'm' o 'M' crea y ejecuta un thread, y si es 's' o 'S', el thread de se detendrá. Si se vuelve a presionar 'm' o 'M', se volverá a crear y a ejecutar un nuevo thread.

Te dejo el código ya comentado, para que lo entiendas.

JFrame y JPanel:

Código
  1. import javax.swing.JFrame;
  2. import javax.swing.JPanel;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6.  
  7. public class KeyListenerGraphicsDemo extends JFrame {
  8.  
  9.    public KeyListenerGraphicsDemo() {
  10.        init();
  11.    }
  12.  
  13.    private void init() {
  14.        this.setTitle("Demo Graphics and KeyListener");
  15.        this.setVisible(true);
  16.        this.setSize(400,300);
  17.        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  18.        this.add(new PanelGrafico());
  19.    }
  20.  
  21. public class PanelGrafico extends JPanel {
  22.  
  23.    private float radio = 35f;
  24.    private int ancho = 60, alto = 180;
  25.    private int dirX = ancho % 10 +5;
  26.    private int dirY = alto % 10 +1;
  27.  
  28.    DriverEvents driver = new DriverEvents(this);
  29.  
  30.    public PanelGrafico() {
  31.        // hace el panel focusable para que pueda implementar
  32.        // KeyListener, ya que por defecto no es focusable
  33.        this.setFocusable(true);
  34.        this.addKeyListener(driver); // asocia el panel con el driver
  35.    }
  36.  
  37.    @Override
  38.    public void paintComponent(Graphics g) {
  39.        super.paintComponent(g);
  40.        Graphics2D g2 = (Graphics2D) g;
  41.  
  42.        // utiliza el metodo mover la dibujar
  43.        g2.setColor(Color.BLUE);
  44.        g2.fillOval((int)(ancho - radio),(int)(alto - radio), (int)(radio*2),(int) (radio*2));
  45.    }
  46.  
  47.    // mueve la pelota a lo largo del marco
  48.    public void mover() {
  49.  
  50.        ancho += dirX;
  51.        alto += dirY;
  52.  
  53.        //Controlo que cuando toca el borde, cambie de direccion
  54.        if ((ancho-radio) <= 0)
  55.            dirX*= -1;
  56.        else if ((ancho+radio) >= getWidth())
  57.            dirX*= -1;
  58.  
  59.        if ((alto-radio) <= 0)
  60.            dirY*= -1;
  61.        else if ((alto+radio) >= getHeight())
  62.            dirY*= -1;
  63.        this.repaint();
  64.    }  
  65.  
  66.  
  67. }
  68.  
  69. }
  70.  

Driver de los eventos del JPanel:

Código
  1. import java.awt.event.KeyEvent;
  2. import java.awt.event.KeyListener;
  3. import source.KeyListenerGraphicsDemo.PanelGrafico;
  4.  
  5.  
  6. public class DriverEvents implements KeyListener {
  7.  
  8.    private final PanelGrafico panel; // maneja el panel
  9.    private byte cantidadThreads = 0; // cantidad de threads
  10.    private boolean correr = true; // condicion del thread
  11.  
  12.    public DriverEvents(PanelGrafico panel) {
  13.        this.panel = panel;
  14.    }
  15.  
  16.    // recupera el caracter de la letra y ejecuta el thread
  17.    // en caso se presione la letra correcta
  18.    @Override
  19.    public void keyPressed(KeyEvent e) {
  20.        char letterPress = e.getKeyChar();
  21.  
  22.        switch(letterPress) {
  23.            case 'M':
  24.            case 'm': correr = true; start(); break;
  25.            case 'S':
  26.            case 's': correr = false; cantidadThreads = 0; break;
  27.        }
  28.    }
  29.  
  30.    // si no hay threads en ejecucion, crea uno nuevo y lo ejecuta
  31.    private void start() {
  32.        cantidadThreads++;
  33.        if (cantidadThreads <= 1) {
  34.            PaintThread thread = new PaintThread();
  35.            thread.start();
  36.        }
  37.    }
  38.  
  39.    @Override
  40.    public void keyTyped(KeyEvent e) {
  41.    }
  42.  
  43.  
  44.    @Override
  45.    public void keyReleased(KeyEvent e) {
  46.    }
  47.  
  48. // Thread
  49. public class PaintThread extends Thread {
  50.  
  51.    @Override
  52.    public void run() {
  53.        while(correr == true) {
  54.            panel.mover();
  55.            panel.repaint();
  56.  
  57.        }
  58.    }
  59. }
  60.  
  61. }
  62.  

Main:

Código
  1. import javax.swing.SwingUtilities;
  2.  
  3.  
  4. public class Main {
  5.    public static void main(String... args) {
  6.    SwingUtilities.invokeLater(new Runnable() {
  7.        @Override
  8.        public void run(){
  9.            new KeyListenerGraphicsDemo();
  10.    }
  11.    });
  12.    }
  13. }
  14.  



Como ves no es nada difícil. Espero te haya servido.



Saludos.
129  Programación / Java / Re: Recibir teclado java en: 18 Noviembre 2013, 02:30 am
No lo he probado (no tengo una pc a mano), pero algo así debería funcionar.


UPDATE:


Panel que dibujará:

Código
  1.        public class PanelGrafico extends JPanel {
  2.  
  3.            int PosX = 60,PosY=184; //Posici&#243;n de la pelota
  4.            int DirX = 0; //Direcci&#243;n de la pelota
  5.            int DirY = 0; //Direcci&#243;n de la pelota
  6.            int radioPelota = 3.5; //Radio de la pelota
  7.  
  8.            Eventos driverEventos = new Eventos(this);
  9.  
  10.    public PanelGrafico()
  11.    {
  12.              this.setBackground(Color.WHITE);
  13.              this.setFocusable(true);
  14.              this.addKeyListener(driverEventos);
  15.    }
  16.  
  17.            @Override
  18.            public void paintComponent(Graphics g){
  19.                super.paintComponent(g);
  20.                Graphics2D graphics = (Graphics2D) (g);
  21.                //establece antialiasing (bordes finos)
  22.                graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  23.                RenderingHints.VALUE_ANTIALIAS_ON);
  24.                g.setColor(Color.black);
  25.                g.fillOval (PosX-radioPelota, PosY-radioPelota, radioPelota*2, radioPelota*2);
  26.                g.dispose();
  27.            }
  28.  
  29.            public void mover()
  30.           {
  31.             PosX+= DirX;
  32.             PosY+= DirY;
  33.  
  34.             //Controlo que cuando toca el borde, cambie de direccion
  35.             if ((panel.PosX-radioPelota) <= 0)
  36.             DirX*= -1;
  37.             else if ((PosX+radioPelota) >= getWidth())
  38.             DirX*= -1;
  39.  
  40.             if ((PosY-radioPelota) <= 0)  
  41.             DirY*= -1;
  42.             else if ((PosY+panel.radioPelota) >= getHeight())
  43.             DirY*= -1;
  44.            }  
  45.  
  46.        }
  47.  

Frame:

Código
  1. public Figura extends JFrame {
  2.  
  3.      PanelGrafico panel = null;
  4.  
  5.      public Figura() {
  6.  
  7.         try{
  8.                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName() );
  9.            }
  10.                JOptionPane.showMessageDialog(null,e.toString());
  11.            }
  12.  
  13.           this.panel = new PanelGrafico();
  14.           this.add(panel);
  15.           this.setSize(550,550);
  16.           this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  17.           this.setVisible(true);
  18.      }
  19.  

Controladora de eventos:

Código
  1. import java.awt.event.KeyEvent;
  2. import java.awt.event.KeyListener;
  3.  
  4.  
  5. public class Eventos implements KeyListener,Runnable {
  6.  
  7.    // Creo un objeto Panel para despues poder acceder a los
  8.    // componentes del Frame mediante un objeto de esa clase
  9.    PanelGrafico ref;
  10. public Eventos(Panel referencia)
  11. {
  12. ref = referencia;
  13.    }
  14.  
  15.    @Override
  16.    public void keyPressed(KeyEvent evento)
  17.    {
  18.        char letra = evt.getKeyChar();
  19.  
  20.        switch (letra) {
  21.              case 'a': run(); break;
  22.        }
  23.    }
  24.  
  25.    @Override
  26.    public void keyReleased(KeyEvent e)
  27.    {
  28.        // nada
  29.    }
  30.  
  31.    @Override
  32.    public void keyTyped(KeyEvent e)
  33.    {
  34.        // nada
  35.    }
  36.  
  37.    @Override
  38.    public void run()
  39.    {
  40.          while(true)
  41.           {
  42.              ref.mover(); //Funci&#243;n que mueve la pelota
  43.              ref.repaint();
  44.  
  45.             Thread.sleep(10);
  46.           }
  47.   }
  48.  
  49. }
  50.  

Main:

Código
  1. import javax.swing.SwingUtilities;
  2.  
  3.  
  4. public class Main {
  5.  
  6.    public static void main(String... main)
  7. {
  8. SwingUtilities.invokeLater(new Runnable(){
  9. @Override
  10. public void run()
  11. {
  12.                            new Figura();
  13. }
  14. });
  15. }
  16. }
  17.  


Creo que ya no me falta corregir nada más a simple vista. Última actualización 20:43 GMT -5.

Espero te sirva, saludos..
130  Programación / Java / Re: Recibir teclado java en: 18 Noviembre 2013, 01:43 am
¿Disculpa pero cuál es tu duda? Sé más específico por favor, si te salta una excepción, o no funciona como debería, o qué se yo, pero especifica con detalle el problema para poder comprenderte.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines