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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [39] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ... 139
381  Foros Generales / Foro Libre / Re: video de Engel lex en: 18 Julio 2019, 21:49 pm
Cómo decimos allá, después de matar al tigre le tuvo miedo al cuero. Al menos está bien.

Lmao
382  Foros Generales / Noticias / Re: Ojo al instalar CCleaner: ahora incluye un navegador web si te descuidas en: 17 Julio 2019, 21:44 pm
Mmm bueno, ese cuento es algo viejo con ccleaner lmao, solo evitar siguiente siguiente
383  Foros Generales / Noticias / Re: Estudio demuestra que el porno es igual de excitante tanto para las mujeres ... en: 17 Julio 2019, 07:36 am
Y yo ayer soñé con una mujer mientras se autocomplacia, que las mujeres no les gusta? Jajaja bulllllllllllllll shit nigga, les encannntaaa.
384  Foros Generales / Noticias / Re: YouTube prohíbe los vídeos que enseñan a hackear y piratear en: 16 Julio 2019, 22:25 pm
Tiene mucho tráfico ese contenido? No creo que influya prácticamente nada. De 50.000 términos (estimación random), programas, etc que he buscado en google solo 1 de las busquedas me recomendó info de la web del foro.
El problema que veo a cerca de eso es que los temas complejos y avanzados apenas se tocan. Yo creo que principalmente porque suelen englobar mucho a su alrededor, porque ya hay infor desactulizada, o por faltas de interés por ambos lados.

Por ejemplo iba a explicar varios cifrados y ya están explicados en el foro. Como por ejemplo la criptografía asimétrica.

Claro dog, en parte tienes razón, hay info algo vieja, pero util igual

Si sabes eso, pues realiza un tuto y ya.  :P
385  Comunicaciones / Redes / Re: Apertura de Puertos para un Servidor en: 16 Julio 2019, 22:01 pm
port forwarding alias, redireccion de puertos y ya, que router usas a ver si encuentro un emulador.
386  Comunicaciones / Redes / Re: Apertura de Puertos para un Servidor en: 16 Julio 2019, 15:02 pm
Tienes un server casero que quieres acceder a él desde fuera de tu red no?
387  Foros Generales / Noticias / Re: Facebook rastrea las fotos que subes incluso fuera de la red social:así funciona en: 16 Julio 2019, 14:59 pm
Usen Signal o telegram y si acaso.

Lmao
388  Programación / Java / Re: Como borrar la pila de actividades con una pulsación larga desde un menú en: 15 Julio 2019, 21:25 pm
Primero hablas de implementar en tu primer post ahí lo dices, y ahora es detectar que botón ha sido pulsado? No veo ningún listener de ningún botón en el OnCreate()

Damn iwoa, cada botón debe tener su listener.
389  Foros Generales / Noticias / Re: Raspberry Pi 4 Model B, análisis: doble de potencia para un mini PC milagroso... en: 13 Julio 2019, 01:35 am
Tiene problemas con temperaturas de Cpu y no detecta muchos cables para carga por usb-c. Los detecta como cables audio. No lo compreis hasta que lo arreglen y bajen el precio.

No habían lanzado un update para parchear las temps ?
390  Programación / Java / Re: Duda manejando eventos de teclado en Java en: 11 Julio 2019, 16:08 pm
Tu Panel extiende de Canvas, debería ser de JPanel, ambos se aplica lo mismo para obtener el foco, cuando haces click obtienes el foco del panel que contiene los eventos del KeyListener dog.

Aqui la parte azul representa a ese Pseudo Panel que tienes  :xD



Por ningun lado vi a

Código
  1. addKeyListener(this);

lo añadí en el método iniciar, entonces al darle click se habilita el KeyListener y el foco de ese Panel con

Código
  1. requestFocus();

quedando

Código
  1. public class Panel extends Canvas implements Runnable, KeyListener, ShowData {
  2.  
  3.    //Atributos:
  4.    private int ancho, alto; //el alto y el ancho del panel
  5.    private boolean play = false;//Variable que nos indica si la animación ha comenzado o no.
  6.    //... Más atributos. En general, objetos que deben ser pintados. Y variables que indican lo que
  7.    //tienen que hacer esos objetos durante la animación
  8.    private int espera = 1000;
  9.  
  10.    //Constructor:
  11.    public Panel(int anch, int alt) {
  12.        ancho = anch;
  13.        alto = alt;
  14.        play = false;
  15.        //Se construyen los demás atributos
  16.        setBackground(Color.BLUE);
  17.  
  18.    }
  19.  
  20.    public void paint(Graphics G) {
  21.        //Aquí se pintan algunos de los atributos del objeto utilizando técnicas de doble bouffering
  22.    }
  23.  
  24.    public void update(Graphics G) {
  25.        paint(G);
  26.    }
  27.  
  28.    public void actualizar() {
  29.        //Nada.. Aquí se actualiza la posición de los objetos (atributos de Panel) que deben ser
  30.        //pintados durante la animación
  31.    }
  32.  
  33.    @Override
  34.    public void run() {
  35.        while (play) {
  36.            actualizar();
  37.            repaint();
  38.            try {
  39.                Thread.sleep(espera);
  40.            } catch (InterruptedException E) {
  41.            }
  42.            //Y más cosas que no creo que vengan a cuento.
  43.        }
  44.    }
  45.  
  46.    public void iniciar() {
  47.        play = true;
  48.        addKeyListener(this);
  49.        requestFocus();
  50.        Thread hilo = new Thread(this);
  51.        hilo.start();
  52.    }
  53.  
  54.    public void detener() {
  55.        play = false;
  56.        removeKeyListener(this);
  57.    }
  58.  
  59.    //Metodos de KeyListener
  60.    public void keyTyped(KeyEvent e) {
  61.    }
  62.  
  63.    public void keyPressed(KeyEvent e) {
  64.        if (e.getKeyChar() == 'a') {
  65.            //Se modifican los atributos necesarios para que la animación haga lo que tiene que
  66.            //hacer cuando se pulsa una 'a'
  67.            info("Letra A");
  68.        }
  69.        if (e.getKeyChar() == 's') {
  70.            //Lo mismo para la 's'
  71.            info("Letra S");
  72.        }
  73.        if (e.getKeyChar() == 'l') {
  74.            //...
  75.            info("Letra L");
  76.        }
  77.        if (e.getKeyChar() == 'ñ') {
  78.            //...
  79.            info("Letra Ñ");
  80.        }
  81.    }
  82.  
  83.    @Override
  84.    public void keyReleased(KeyEvent e) {
  85.        if (e.getKeyChar() == 'a') {
  86.            //Se modifican los atributos necesarios para que la animación haga lo que tiene que
  87.            //hacer cuando se suelta la 'a'
  88.            info("Letra A soltada");
  89.        }
  90.        if (e.getKeyChar() == 's') {
  91.            //...
  92.            info("Letra s soltada");
  93.        }
  94.        if (e.getKeyChar() == 'l') {
  95.            //...
  96.            info("Letra l soltada");
  97.        }
  98.        if (e.getKeyChar() == 'ñ') {
  99.            //...
  100.            info("Letra ñ soltada");
  101.        }
  102.    }
  103.  
  104. }

Juego2

Código
  1. public class Juego2 extends JFrame implements ActionListener {
  2.  
  3.    private Panel panel;
  4.    private JButton boton;
  5.    private boolean play = false;
  6.    private int anchoP = 900, altoP = 700;
  7.  
  8.    //El constructor. No creo que tenga mucho interés para lo de mi duda pero lo pongo por si
  9.    //acaso:
  10.    public Juego2() {
  11.        panel = new Panel(anchoP, altoP);
  12.        boton = new JButton("play");
  13.  
  14.        setBackground(new Color(240, 240, 240));
  15.        setLayout(null);
  16.        setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
  17.        setBounds(0, 0, 1300, 800);
  18.        setVisible(true);
  19.  
  20.        boton.addActionListener(this);
  21.  
  22.        getContentPane().add(boton);
  23.        boton.setBounds(20, 330, 250, 30);
  24.  
  25.        getContentPane().add(panel);
  26.        panel.setBounds(300, 30, anchoP, altoP);
  27.        panel.setVisible(true);
  28.  
  29.        addWindowListener(new WindowAdapter() {
  30.            @Override
  31.            public void windowClosing(WindowEvent e) {
  32.                final int opc = JOptionPane.showConfirmDialog(null,
  33.                        "Información",
  34.                        "Desea salir?",
  35.                        0);
  36.                if(opc == 0) {
  37.                    System.exit(0);
  38.                }
  39.            }
  40.        });
  41.  
  42.    }
  43.  
  44.    //el main
  45.    public static void main(String[] args) {
  46.        new Thread(Juego2::new).start();
  47.    }
  48.  
  49.    //El actionPerformed de la clase ActionListener
  50.    public void actionPerformed(ActionEvent e) {
  51.        if (e.getSource() == boton) {
  52.            if (play) {
  53.                play = false;
  54.                boton.setText("play");
  55.                panel.detener();
  56.            } else {
  57.                play = true;
  58.                boton.setText("pause");
  59.                panel.iniciar();
  60.            }
  61.        }
  62.    }
  63. }
  64.  

Y una interface para los logs

Código
  1. /**
  2.  * logs
  3.  */
  4. public interface ShowData {
  5.  
  6.    default Logger getLogger() {
  7.        return LoggerFactory.getLogger(getClass().getSimpleName());
  8.    }
  9.  
  10.    default <T> void info(final T s) {
  11.        getLogger().info(s.toString());
  12.    }
  13.  
  14.    default <T> void error(final T s) {
  15.        getLogger().warn(s.toString());
  16.    }
  17. }
Páginas: 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [39] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ... 139
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines