Autor
|
Tema: Applet en java no termina ejecucion (Leído 1,550 veces)
|
andrex.125
Desconectado
Mensajes: 19
|
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. 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
|
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 import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JOptionPane; public class AppletGrafica extends Applet { int x1[] = new int[5]; public void init() { @Override } @Override public void keyReleased (KeyEvent arg0 ) { if (arg0. getKeyCode() == KeyEvent. VK_R) { insertaDatos(); } } @Override } }); } public void start() { insertaDatos(); } public void insertaDatos() { int x; for (int i = 0; i < 5; i++) { //pedimos al usuario que dijite 5 valores de x y los guardamos en un arreglo x1[i] = x; } repaint(); } a.drawLine(50, 275, 500, 275);//eje x a.drawLine(275, 50, 275, 500);//eje y } for (int i = 0; i < 19; i++) { // se dibuja la division del plano 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++; a.drawString(x, 50 + (25 * j), 273); } int h = -1; for (int i = 9; i >= -9; i--) { h++; if (!"0".equals(x)) { a.drawString(x, 263, 50 + (25 * h)); } } } super.paint(a); ejeXyY(a); divisionPlano(a); int menor = 10; int max = -10; for (int i = 0; i < 5; i++) { if (x1[i]< 10 && x1[i] > -10) { a.fillOval (275+(x1[i] * 25),275+(x1[i] *-25),2,2);//vamos dibujando los puntos que ingresa el usuario a.drawOval (275+(x1[i] * 25),275+(x1[i] *-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] > max) { max = x1[i]; System. out. println("este es el mayor " + max ); } } a.drawString("Re inserta datos con \"R\"", 10, 10); a.drawLine(275 + (menor * 25), 275 + (menor * -25), 275 + (max * 25), 275 + (max * -25));// se dibuja la recta. a.dispose(); } }
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda, applet con permisos Java
Java
|
Tilon
|
3
|
5,845
|
22 Abril 2004, 11:44 am
por AnKeR
|
|
|
interfaces y applet de (java)
Java
|
HackeadorPrimeriso
|
2
|
3,069
|
30 Noviembre 2006, 22:38 pm
por Ragnarok
|
|
|
como edito un applet java?
Java
|
K¡NO-C@LD3
|
3
|
2,952
|
6 Febrero 2008, 14:45 pm
por K¡NO-C@LD3
|
|
|
ejecutar matlab en applet de java?????
Java
|
KaOs_NiGhT
|
2
|
5,256
|
8 Septiembre 2008, 20:50 pm
por KaOs_NiGhT
|
|
|
Problema Algoritmica (java Applet)
Ejercicios
|
enrique8923
|
2
|
5,339
|
28 Octubre 2008, 04:19 am
por :ohk<any>
|
|