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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Applet en java no termina ejecucion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Applet en java no termina ejecucion  (Leído 1,452 veces)
andrex.125

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Applet en java no termina ejecucion
« en: 18 Octubre 2013, 06:25 am »

Hola, estoy haciendo un Applet en java que gráfica la función F(x) = x,  osea una recta, ya termine el ejercicio lo pruebo y funciona, el problema mio es que el applet nunca termina y por esta razón no gráfica la recta. quisiera que me pudiera ayudar si saben como solucionarlo. Gracias.

Código:

import java.applet.Applet;
import java.awt.*;
import javax.swing.JOptionPane;

public class AppletGrafica extends Applet {

    int x1[] = new int[5];

    public void init() {
       

    }

    public static void ejeXyY(Graphics a) {
        a.setColor(Color.black);
        a.drawLine(50, 275, 500, 275);//eje x
        a.drawLine(275, 50, 275, 500);//eje y
        a.setColor(Color.red);

    }

    public static void divisionPlano(Graphics a) {

        for (int i = 0; i < 19; i++) { // se dibuja la division del plano
            a.setColor(new Color(0, 0, 0));
            a.drawLine(273, 50 + (25 * i), 277, 50 + (25 * i));
            a.drawLine(50 + (25 * i), 273, 50 + (25 * i), 277);
        }
        int j = -1;
        for (int i = -9; i <= 9; i++) { // dibujamos los numero del eje X y eje Y

            j++;

            String x = Integer.toString(i);

            a.drawString(x, 50 + (25 * j), 273);
        }
        int h = -1;
        for (int i = 9; i >= -9; i--) {
            String x = Integer.toString(i);
            h++;
            if (!"0".equals(x)) {
                a.drawString(x, 263, 50 + (25 * h));
            }

        }
    }

    public void paint(Graphics a) {
        ejeXyY(a);
        divisionPlano(a);
        int x;
        int menor = 10;
        int max = 0;
        for (int i = 0; i < 5; i++) {
            do {
                x = Integer.parseInt(JOptionPane.showInputDialog(null, "digite f(x) " + (i + 1)));
                //pedimos al usuario que dijite 5 valores de x y los guardamos en un arreglo
                x1[i] = x;
               
            } while ((x > 10) || (x < -10)); //verifico que el numero no sea mayor ni menor que 10, porque plano solo va hasta 9 y -9
             a.fillOval (275+(x * 25),275+(x *-25),2,2);//vamos dibujando los puntos que ingresa el usuario
             a.drawOval (275+(x * 25),275+(x *-25),2,2);
               
        }
       
        for (int i = 0; i < 5; i++) { // saco menor numero y el mayor del arreglo para hacer la recta
            // System.out.println(n);
            if (x1[i] < menor) {
                menor = x1[i];
                System.out.println("este es el menor " + menor);
            }
        }
        for (int i = 0; i < 5; i++) {
            // System.out.println(n);
            if (x1[i] > menor) {
                max = x1[i];
                System.out.println("este es el mayor " + max);
            }
        }
        a.setColor(new Color(0, 0, 0));
        a.drawLine(275 + (menor * 25), 275 + (menor * -25), 275 + (max * 25), 275 + (max * -25));// se dibuja la recta.

       
    }
}


En línea

Ismaw34

Desconectado Desconectado

Mensajes: 14



Ver Perfil WWW
Re: Applet en java no termina ejecucion
« Respuesta #1 en: 7 Noviembre 2013, 15:38 pm »

Saludos,

En solucion de tu problema, he de advertirte que si vas a compilar el Applet para ejecutarlo en el Explorador de internet, a ninguno les gusta el JOptionPane o similares frames que se creen.

De todas maneras me he tomado la libertad de ponerle algo interesante

Código
  1. import java.applet.Applet;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import java.awt.event.KeyEvent;
  5. import java.awt.event.KeyListener;
  6.  
  7. import javax.swing.JOptionPane;
  8.  
  9. public class AppletGrafica extends Applet {
  10.  
  11.    int x1[] = new int[5];
  12.  
  13.    public void init() {
  14.     this.addKeyListener(new KeyListener() {
  15.  
  16. @Override
  17. public void keyTyped(KeyEvent arg0) {
  18. }
  19.  
  20. @Override
  21. public void keyReleased(KeyEvent arg0) {
  22. if (arg0.getKeyCode() == KeyEvent.VK_R) {
  23. insertaDatos();
  24. }
  25. }
  26.  
  27. @Override
  28. public void keyPressed(KeyEvent arg0) {
  29. }
  30. });
  31.    }
  32.  
  33.    public void start() {
  34.     insertaDatos();
  35.    }
  36.  
  37.    public void insertaDatos() {
  38.     int x;
  39.     for (int i = 0; i < 5; i++) {
  40.            x = Integer.parseInt(JOptionPane.showInputDialog(null, "digite f(x) " + (i + 1)));
  41.            //pedimos al usuario que dijite 5 valores de x y los guardamos en un arreglo
  42.            x1[i] = x;
  43.    }
  44.     repaint();
  45.    }
  46.  
  47.    public void ejeXyY(Graphics a) {
  48.        a.drawLine(50, 275, 500, 275);//eje x
  49.        a.drawLine(275, 50, 275, 500);//eje y
  50.    }
  51.  
  52.    public void divisionPlano(Graphics a) {
  53.  
  54.        for (int i = 0; i < 19; i++) { // se dibuja la division del plano
  55.            a.drawLine(273, 50 + (25 * i), 277, 50 + (25 * i));
  56.            a.drawLine(50 + (25 * i), 273, 50 + (25 * i), 277);
  57.        }
  58.        int j = -1;
  59.        for (int i = -9; i <= 9; i++) { // dibujamos los numero del eje X y eje Y
  60.  
  61.            j++;
  62.  
  63.            String x = Integer.toString(i);
  64.  
  65.            a.drawString(x, 50 + (25 * j), 273);
  66.        }
  67.        int h = -1;
  68.        for (int i = 9; i >= -9; i--) {
  69.            String x = Integer.toString(i);
  70.            h++;
  71.            if (!"0".equals(x)) {
  72.                a.drawString(x, 263, 50 + (25 * h));
  73.            }
  74.  
  75.        }
  76.    }
  77.  
  78.    public void paint(Graphics a) {
  79.     super.paint(a);
  80.     a.setColor(Color.BLACK);
  81.        ejeXyY(a);
  82.        divisionPlano(a);
  83.        int menor = 10;
  84.        int max = -10;
  85.        for (int i = 0; i < 5; i++) {
  86.         if (x1[i]< 10 && x1[i] > -10) {
  87.         a.fillOval (275+(x1[i] * 25),275+(x1[i] *-25),2,2);//vamos dibujando los puntos que ingresa el usuario
  88.            a.drawOval (275+(x1[i] * 25),275+(x1[i] *-25),2,2);}
  89.        }
  90.  
  91.        for (int i = 0; i < 5; i++) { // saco menor numero y el mayor del arreglo para hacer la recta
  92.            // System.out.println(n);
  93.            if (x1[i] < menor) {
  94.                menor = x1[i];
  95.                System.out.println("este es el menor " + menor);
  96.            }
  97.        }
  98.        for (int i = 0; i < 5; i++) {
  99.            // System.out.println(n);
  100.            if (x1[i] > max) {
  101.                max = x1[i];
  102.                System.out.println("este es el mayor " + max);
  103.            }
  104.        }
  105.        a.drawString("Re inserta datos con \"R\"", 10, 10);
  106.        a.drawLine(275 + (menor * 25), 275 + (menor * -25), 275 + (max * 25), 275 + (max * -25));// se dibuja la recta.
  107.        a.dispose();
  108.    }
  109. }

Cambios:

llamar a super.paint(g); para baciar el buffer
g.dispose(); llama para avisar que ya has terminado de usarlo
en el init() he puesto el manejador de "Reset"
en el start() llamamos al primer "Reset"
creado el metodo de reset, que inserta los datos dentro de x1
Cambiados varios codigos de colores que no te servian para nada

Espero haberte ayudado,

-Ismaw34


« Última modificación: 7 Noviembre 2013, 23:28 pm por Ismaw34 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda, applet con permisos Java
Java
Tilon 3 5,600 Último mensaje 22 Abril 2004, 11:44 am
por AnKeR
interfaces y applet de (java)
Java
HackeadorPrimeriso 2 2,896 Último mensaje 30 Noviembre 2006, 22:38 pm
por Ragnarok
como edito un applet java?
Java
K¡NO-C@LD3 3 2,724 Último mensaje 6 Febrero 2008, 14:45 pm
por K¡NO-C@LD3
ejecutar matlab en applet de java?????
Java
KaOs_NiGhT 2 5,088 Último mensaje 8 Septiembre 2008, 20:50 pm
por KaOs_NiGhT
Problema Algoritmica (java Applet)
Ejercicios
enrique8923 2 5,175 Último mensaje 28 Octubre 2008, 04:19 am
por :ohk<any>
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines