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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ayuda con programa de graficos en java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con programa de graficos en java  (Leído 2,219 veces)
phoenix_88

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Ayuda con programa de graficos en java
« en: 26 Febrero 2013, 15:45 pm »

Hola a todos, quisiera saber si alguno de uds me podria colaborar para elaborar un applet en el cual hayan 2 botones de tal manera que al presionar uno de los botones genere figuras al azar empezando más debajo de la coordenada 60, 80 y con el otro limpie la pantalla.

Les agradezco si me pudieran colaborar con esto ya que he estado buscando sobre el tema pero no he logrado comprender.


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Ayuda con programa de graficos en java
« Respuesta #1 en: 26 Febrero 2013, 17:37 pm »

._. no sé donde búscaste o a qué te refieres con que no encontraste.

http://xolaltenco.wordpress.com/2007/10/14/dibuja-figuras-en-java/
http://casidiablo.net/codigo-java-graficos-2d/

y tienes un mal concepto de "Colaborar"
http://es.wikipedia.org/wiki/Colaboraci%C3%B3n

Con esa actitud nadie aqui te ayudará.

Saludos.


En línea

abc
phoenix_88

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda con programa de graficos en java
« Respuesta #2 en: 26 Febrero 2013, 19:04 pm »

Bueno si disculpa la verdad es la primera vez que ingreso pero tal vez la desesperación a este inconveniente me llevo a plantear mal la pregunta, en realidad lo que no se es como hacer para que al presionar el boton genere figuras aleatoriamente sin necesidad de crear mas botones.

Slds.
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Ayuda con programa de graficos en java
« Respuesta #3 en: 26 Febrero 2013, 21:10 pm »

Cóloca lo que llevas de código y te ayudo.

Saludos.
En línea

abc
phoenix_88

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda con programa de graficos en java
« Respuesta #4 en: 27 Febrero 2013, 15:03 pm »

Hola, mira lo que llevo no se que tengo mal pero al ejecutarlo la ventana del applet queda en blanco.

Te agradezco si me pudieras indicar cual es el problema.

Buen día.

import java.applet.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class actividad3 extends Applet implements ActionListener{

public void init() {   
setSize(460,320);
}
   Label label;
   Button b1,b2,b3,b4;
   boolean circulo = false;
   boolean cuadrado= false;
   boolean triangulo= false;
   Color color;

   actividad3(String titulo){
       setLayout(new FlowLayout());
       setBackground(Color.CYAN); // define las caracteristicas de la ventana del programa uno
       Font fuente = new Font("Verdana",Font.BOLD,30);
       label = new Label("");label.setFont(fuente);
       color = new Color(aleatorio(255),aleatorio(255),aleatorio(255));
       b1 = new Button("Circulo"); // crea los botones de la parte superior
     b2 = new Button("Cuadrado");
     b3 = new Button("Triangulo");
     b4 = new Button("Limpia");
     add(b1);add(b2);
     add(b3);add(b4);
     b1. addActionListener(this);
     b2. addActionListener(this);
     b3. addActionListener(this);
     b4. addActionListener(this);


       addWindowListener(new WindowAdapter() {public void
       windowClosing(WindowEvent e) {setVisible(false);}});
   }
public void actionPerformed(ActionEvent ae) {
     if (ae.getSource() == b1) { // muestra la figura del circulo
        circulo = true;cuadrado = false;triangulo=false;
     }
     else
          if (ae.getSource() == b2) { // muestra la figura del cuadrado
        cuadrado = true;circulo = false;triangulo=false;
          }
        else
            if (ae.getSource() == b4) { // limpia la pantalla
        circulo = false;triangulo=false;cuadrado = false;
         }
       else
          if (ae.getSource() == b3) { // muestra la figura del triangulo
        triangulo = true;cuadrado = false;circulo = false;
          }
     repaint();
  }
     public void paint(Graphics g) {
         if (circulo) { //define las coordenadas y el borde del circulo color rojo
                g.setColor(Color.red);
                        int x1 = 110;
                        int y1 = 150;
               g.drawOval(x1,y1,100,100);
              g.translate(x1, y1);
                 }
      else
       if (cuadrado) { //define las coordenadas, determina un color de fondo y a la figura le determina un color de relleno
              g.setColor( color );;
        setBackground(Color.black);
        int x1 = 110,y1 = 150;
        g.drawRect(x1,y1,100,100);
        g.fillRect( x1,y1,100,100 );
                 }
      else
           if (triangulo) { //define las coordenadas y el borde del circulo color naranja
                g.setColor(Color.ORANGE);

              int x1= 100,y1= 50,z1= 200;
              int a1= 100,y3 = 50,c1= 0;
              int d1= 200,e1= 150,f1= 1;
              g.drawLine(x1, y1, z1,150);
              g.drawLine(a1,  y3, c1,150);
                g.drawLine(d1, e1, f1,150);
           }}
      private int aleatorio( int rango ) {

        double retornoMath;
        retornoMath = Math.random();

        return( (int)( retornoMath * rango ) );
       }

        private void addWindowListener(WindowAdapter windowAdapter) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
    }
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Ayuda con programa de graficos en java
« Respuesta #5 en: 27 Febrero 2013, 17:59 pm »

Listo!
Perdona lo tuve que hacer con nb no tengo mucho tiempo.
Solo te toca "limpiar" el código xD

Saludos.

Código
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package figuras;
  6.  
  7. import java.awt.Graphics;
  8. import java.awt.Color;
  9. import java.awt.Font;
  10. /**
  11.  *
  12.  * @author Darhius929
  13.  */
  14. public class PintaFiguras extends java.applet.Applet {
  15.  
  16.    /**
  17.      * Initializes the applet PintaFiguras
  18.      */
  19.    public void init() {
  20.        try {
  21.            java.awt.EventQueue.invokeAndWait(new Runnable() {
  22.                public void run() {
  23.                    initComponents();
  24.                }
  25.            });
  26.        } catch (Exception ex) {
  27.            ex.printStackTrace();
  28.        }
  29.    }
  30.  
  31.    /**
  32.      * This method is called from within the init() method to initialize the
  33.      * form. WARNING: Do NOT modify this code. The content of this method is
  34.      * always regenerated by the Form Editor.
  35.      */
  36.    // <editor-fold defaultstate="collapsed" desc="Generated Code">
  37.    private void initComponents() {
  38.  
  39.        etiquetaFiguras = new java.awt.Label();
  40.        botonCirculo = new java.awt.Button();
  41.        botonCuadrado = new java.awt.Button();
  42.        botonTriangulo = new java.awt.Button();
  43.        botonLimpiar = new java.awt.Button();
  44.  
  45.        etiquetaFiguras.setFont(new Font("Verdana",Font.BOLD,30));
  46.        etiquetaFiguras.setText("Figuras");
  47.        add(etiquetaFiguras);
  48.  
  49.        botonCirculo.setLabel("Circulo");
  50.        botonCirculo.addActionListener(new java.awt.event.ActionListener() {
  51.            public void actionPerformed(java.awt.event.ActionEvent evt) {
  52.                botonCirculoActionPerformed(evt);
  53.            }
  54.        });
  55.        add(botonCirculo);
  56.  
  57.        botonCuadrado.setLabel("Cuadrado");
  58.        botonCuadrado.addActionListener(new java.awt.event.ActionListener() {
  59.            public void actionPerformed(java.awt.event.ActionEvent evt) {
  60.                botonCuadradoActionPerformed(evt);
  61.            }
  62.        });
  63.        add(botonCuadrado);
  64.  
  65.        botonTriangulo.setLabel("Triangulo");
  66.        botonTriangulo.addActionListener(new java.awt.event.ActionListener() {
  67.            public void actionPerformed(java.awt.event.ActionEvent evt) {
  68.                botonTrianguloActionPerformed(evt);
  69.            }
  70.        });
  71.        add(botonTriangulo);
  72.  
  73.        botonLimpiar.setLabel("Limpia");
  74.        botonLimpiar.addActionListener(new java.awt.event.ActionListener() {
  75.            public void actionPerformed(java.awt.event.ActionEvent evt) {
  76.                botonLimpiarActionPerformed(evt);
  77.            }
  78.        });
  79.        add(botonLimpiar);
  80.    }// </editor-fold>
  81.  
  82.    private void botonCirculoActionPerformed(java.awt.event.ActionEvent evt) {
  83.        // TODO add your handling code here:
  84.  
  85.        esCirculo = true;
  86.        esCuadrado = false;
  87.        esTriangulo = false;
  88.        repaint();
  89.    }
  90.  
  91.    private void botonLimpiarActionPerformed(java.awt.event.ActionEvent evt) {
  92.        // TODO add your handling code here:
  93.        esLimpiar = true;
  94.        esCirculo = false;
  95.        esCuadrado = false;
  96.        esTriangulo = false;
  97.        repaint();
  98.    }
  99.  
  100.    private void botonTrianguloActionPerformed(java.awt.event.ActionEvent evt) {
  101.        // TODO add your handling code here:
  102.  
  103.        esCirculo = false;
  104.        esCuadrado = false;
  105.        esTriangulo = true;
  106.        repaint();
  107.    }
  108.  
  109.    private void botonCuadradoActionPerformed(java.awt.event.ActionEvent evt) {
  110.        // TODO add your handling code here:
  111.  
  112.        esCirculo = false;
  113.        esCuadrado = true;
  114.        esTriangulo = false;
  115.        repaint();
  116.    }
  117.  
  118.  
  119.    public void paint(Graphics g) {
  120.        if(esCirculo) {
  121.            g.setColor(Color.RED);
  122.            int x1 = 110;
  123.            int y1 = 150;
  124.            g.drawOval(x1,y1,100,100);
  125.            g.translate(x1, y1);
  126.        }else if(esCuadrado) {
  127.            g.setColor(obtenerColorAleatorio(255, 255, 255));
  128.            this.setBackground(Color.BLACK);
  129.            int x1 = 110, y1 = 150;
  130.            g.drawRect(x1,y1,100,100);
  131.            g.fillRect( x1,y1,100,100 );
  132.        }else if(esTriangulo) {
  133.            g.setColor(Color.ORANGE);
  134.            int x1= 100,y1= 50,z1= 200;
  135.            int a1= 100,y3 = 50,c1= 0;
  136.            int d1= 200,e1= 150,f1= 1;
  137.            g.drawLine(x1, y1, z1,150);
  138.            g.drawLine(a1,  y3, c1,150);
  139.            g.drawLine(d1, e1, f1,150);
  140.        }else {
  141.            this.setBackground(Color.CYAN);
  142.        }
  143.    }
  144.  
  145.    private Color obtenerColorAleatorio(int R, int G, int B) {
  146.        int aleatorioR = (int)(Math.random()*R);
  147.        int aleatorioG = (int)(Math.random()*G);
  148.        int aleatorioB = (int)(Math.random()*B);
  149.  
  150.        Color colorAleatorio = new Color(aleatorioR, aleatorioG, aleatorioB);
  151.  
  152.        return colorAleatorio;
  153.    }
  154.  
  155.    private boolean esCirculo = false;
  156.    private boolean esCuadrado = false;
  157.    private boolean esTriangulo = false;
  158.    private boolean esLimpiar = false;
  159.    // Variables declaration - do not modify
  160.    private java.awt.Button botonCirculo;
  161.    private java.awt.Button botonCuadrado;
  162.    private java.awt.Button botonLimpiar;
  163.    private java.awt.Button botonTriangulo;
  164.    private java.awt.Label etiquetaFiguras;
  165.    // End of variables declaration
  166. }
  167.  
En línea

abc
phoenix_88

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda con programa de graficos en java
« Respuesta #6 en: 27 Febrero 2013, 19:19 pm »

Darhius muchisimas gracias por tu ayuda.

Aprovechando te queria preguntar si conoces algún método o si tienes algún link donde me pueda guiar para que con un solo boton me genere las figuras de forma aleatoria sin necesidad de crear mas botones.

Slds.
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Ayuda con programa de graficos en java
« Respuesta #7 en: 27 Febrero 2013, 21:00 pm »

Pues... se me ocurrió lo siguiente xD tal vez puedas darte una idea y mejorarlo.

Código
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package figuras;
  6.  
  7. /**
  8.  *
  9.  * @author Darhius929
  10.  */
  11. public class Aleatorio {
  12.  
  13.    public static void main(String args[]) {
  14.        new Aleatorio();
  15.    }
  16.  
  17.    public Aleatorio() {
  18.  
  19.        String arregloFiguras[] = {"circulo", "cuadrado", "triangulo"};
  20.  
  21.        int figuraAleatoria = seleccionaAleatorio(0,arregloFiguras.length-1);
  22.        System.out.println(figuraAleatoria);
  23.        String nombreFigura = arregloFiguras[figuraAleatoria];
  24.  
  25.        if(nombreFigura.equalsIgnoreCase("circulo")) {
  26.            System.out.println("Dibuja circulo");
  27.            //esCirculo = true;
  28.        }else if( nombreFigura.equalsIgnoreCase("cuadrado")) {
  29.            System.out.println("Dibuja cuadrado");
  30.            //esCuadrado = true;
  31.        }else {
  32.            System.out.println("Dibuja triangulo");
  33.            //esTriangulo = true;
  34.        }
  35.  
  36.    }
  37.  
  38.    public  int seleccionaAleatorio(int minimo, int maximo) {
  39.        return (int) Math.round(((Math.random() * (maximo - minimo)) + minimo));
  40.    }
  41.  
  42. }
  43.  

Si lo vas a hacer así te recomiendo que utilices el método seleccionaAleatorio (me costo uno y el otro xD) si solo se utiliza
Math.random() * tamanoArreglo en este caso se iba hasta el índice 3 :/ y ocurria "ArrayIndexOutOfBoundsException" y si hacia
Math.random() * tamanoArreglo - 1 cuando el índice era 0 se obtenia el índice -1 xD

Saludos.
« Última modificación: 27 Febrero 2013, 21:05 pm por Darhius » En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Graficos en java
Java
CorazonValiente 4 3,555 Último mensaje 2 Septiembre 2008, 02:14 am
por CorazonValiente
Ayuda con programa de java...
Java
Dulcrash 7 5,401 Último mensaje 8 Noviembre 2008, 09:35 am
por juancho77
Ayuda con un programa en Java
Java
jpxc 1 2,651 Último mensaje 10 Marzo 2010, 06:34 am
por Leyer
Graficos en Java
Java
Xedrox 1 3,022 Último mensaje 22 Abril 2011, 09:31 am
por 1mpuls0
Ayuda Programa Java
Java
supersergio88 2 3,072 Último mensaje 1 Junio 2011, 00:45 am
por Littlehorse
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines