Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Graficos en Swing (http://www.forosdelweb.com/f45/graficos-swing-467447/)

broly 22/02/2007 20:15

Graficos en Swing
 
Que tal

Estoy haciendo una aplicacion similar a un paint en java, usando Swing, pero no se como dibujar en ella, alguien que sepa o que tenga un ejemplo de como, saludos

jcxnet 22/02/2007 22:15

Re: Graficos en Swing
 
Mira por aquí a ver si encuentras algo ....

:adios:

chuidiang 22/02/2007 22:47

Re: Graficos en Swing
 
Hola:

Aquí tienes un ejemplo básico de cómo pintar en java.

Aquí tienes un ejemplo de un paint en java

Se bueno.

broly 23/02/2007 02:34

Re: Graficos en Swing
 
Antes que nada, agradezco sus respuestas

jcxnet, buen tutorial, ya lo habia visto, pero no viene lo que busco
chuidiang, muy buenos los ejemplos pero aun no resuelvo lo que quiero

Pongo mi codigo aqui
Código:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.lang.reflect.*;
import java.awt.event.ActionListener;
               

public class paint extends JApplet implements ActionListener{
        JButton cuad, trian, circ, lin, color, btncolor;
        Icon icon;
        JLabel label, labelinfo;
        String texto;
        Frame frame;
        Color colore;
       
 public void init(){
          Container content = getContentPane();
    content.setBackground(Color.lightGray);
   
        //se crea el panel donde iran los botones
        JPanel menuLat = new JPanel(new GridLayout(4, 0));
    content.add(menuLat, BorderLayout.EAST);
   
                //se agregan los botones con sus respectivos iconos
    menuLat.add(cuad = new JButton(icon = new ImageIcon("cuadrado.gif")));
        menuLat.add(trian = new JButton(icon = new ImageIcon("triangulo.gif")));
    menuLat.add(circ = new JButton(icon = new ImageIcon("circulo.gif")));
    menuLat.add(lin = new JButton(icon = new ImageIcon("linea.gif")));
    menuLat.add(color = new JButton(icon = new ImageIcon("colores.gif")));
    menuLat.add(btncolor = new JButton("Color Actual"));
    color.setVerticalTextPosition(AbstractButton.BOTTOM);
    color.setHorizontalTextPosition(AbstractButton.CENTER);
    color.setText("Elige Color");

                //se agrega el listener
    cuad.addActionListener(this);
    trian.addActionListener(this);
    circ.addActionListener(this);
    lin.addActionListener(this);
    color.addActionListener(this);
   
    cuad.setActionCommand("cuadrado");
    trian.setActionCommand("triangulo");
    circ.setActionCommand("circulo");
    lin.setActionCommand("linea");
    color.setActionCommand("color");
         
         
    // panel donde se dibujara 
    JPanel areaDibujo = new JPanel();
    areaDibujo.setPreferredSize(new Dimension(600,0));
    areaDibujo.setBorder(BorderFactory.createLineBorder (Color.blue, 2));
    areaDibujo.setBackground(Color.white);
    content.add(areaDibujo, BorderLayout.WEST);
    areaDibujo.add(label = new JLabel("Area de Dibujo"));
   
        // panel donde esta la etiqueta que dice que accion se tomo       
        JPanel panelinfo = new JPanel(new FlowLayout());
    content.add(panelinfo, BorderLayout.PAGE_END);
    panelinfo.add(labelinfo = new JLabel("Información"));
    setVisible(true);
  }

 
          public void actionPerformed(ActionEvent e){                               
                if (e.getActionCommand().equals("cuadrado")) {
                        labelinfo.setText("Has escogido cuadrado");
                }
                if (e.getActionCommand().equals("triangulo")) {
                        labelinfo.setText("Has escogido triangulo");
                }
                if (e.getActionCommand().equals("circulo")) {
                        labelinfo.setText("Has escogido  circulo");
                }
                if (e.getActionCommand().equals("linea")) {
                        labelinfo.setText("Has escogido linea");
                }
                if (e.getActionCommand().equals("color")) {
        Color colore = JColorChooser.showDialog(this, "Choose Background Color", getBackground());
                        labelinfo.setBackground(colore);
                        labelinfo.setText("Color Actual");
                        // le asigno el color elegido a la etiqueta y el boton btncolor
                        labelinfo.setForeground(colore);
                        btncolor.setBackground(colore);                               
                }
                }
        }
}

Lo que no se, es como hacer que se dibuje lo que quiero en el area de dibujo, osea en el panel "areaDibujo"

Aqui esta una imagen

--h ttp://img201.imageshack.us/my.php?image=paintgy5.jpg

chuidiang 23/02/2007 16:40

Re: Graficos en Swing
 
Hola:

En el ejemplo que te pasé se hereda de Canvas y en el paint() se dibuja. Tu area de dibujo es un JPanel. Hereda de JPanel y el metodo paint() dibuja lo que quieras.

En el ejemplo que te pasé se pone a la clase que hereda de Canvas un método para pasarle la línea que tiene que pintar. Ponle tú a tu clase hija de JPanel métodos para que pinte una figura u otra, de un color u otro.

Se bueno.

yeye200313 13/05/2008 11:13

Re: Graficos en Swing
 
Antes que nada, agradezco sus respuestas

jcxnet, buen tutorial, ya lo habia visto, pero no viene lo que busco
chuidiang, muy buenos los ejemplos pero aun no resuelvo lo que quiero

Pongo mi codigo aqui
Código:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.lang.reflect.*;
import java.awt.event.ActionListener;
               

public class paint extends JApplet implements ActionListener{
        JButton cuad, trian, circ, lin, color, btncolor;
        Icon icon;
        JLabel label, labelinfo;
        String texto;
        Frame frame;
        Color colore;
       
 public void init(){
          Container content = getContentPane();
    content.setBackground(Color.lightGray);
   
        //se crea el panel donde iran los botones
        JPanel menuLat = new JPanel(new GridLayout(4, 0));
    content.add(menuLat, BorderLayout.EAST);
   
                //se agregan los botones con sus respectivos iconos
    menuLat.add(cuad = new JButton(icon = new ImageIcon("cuadrado.gif")));
        menuLat.add(trian = new JButton(icon = new ImageIcon("triangulo.gif")));
    menuLat.add(circ = new JButton(icon = new ImageIcon("circulo.gif")));
    menuLat.add(lin = new JButton(icon = new ImageIcon("linea.gif")));
    menuLat.add(color = new JButton(icon = new ImageIcon("colores.gif")));
    menuLat.add(btncolor = new JButton("Color Actual"));
    color.setVerticalTextPosition(AbstractButton.BOTTOM);
    color.setHorizontalTextPosition(AbstractButton.CENTER);
    color.setText("Elige Color");

                //se agrega el listener
    cuad.addActionListener(this);
    trian.addActionListener(this);
    circ.addActionListener(this);
    lin.addActionListener(this);
    color.addActionListener(this);
   
    cuad.setActionCommand("cuadrado");
    trian.setActionCommand("triangulo");
    circ.setActionCommand("circulo");
    lin.setActionCommand("linea");
    color.setActionCommand("color");
         
         
    // panel donde se dibujara 
    JPanel areaDibujo = new JPanel();
    areaDibujo.setPreferredSize(new Dimension(600,0));
    areaDibujo.setBorder(BorderFactory.createLineBorder (Color.blue, 2));
    areaDibujo.setBackground(Color.white);
    content.add(areaDibujo, BorderLayout.WEST);
    areaDibujo.add(label = new JLabel("Area de Dibujo"));
   
        // panel donde esta la etiqueta que dice que accion se tomo       
        JPanel panelinfo = new JPanel(new FlowLayout());
    content.add(panelinfo, BorderLayout.PAGE_END);
    panelinfo.add(labelinfo = new JLabel("Información"));
    setVisible(true);
  }

 
          public void actionPerformed(ActionEvent e){                               
                if (e.getActionCommand().equals("cuadrado")) {
                        labelinfo.setText("Has escogido cuadrado");
                }
                if (e.getActionCommand().equals("triangulo")) {
                        labelinfo.setText("Has escogido triangulo");
                }
                if (e.getActionCommand().equals("circulo")) {
                        labelinfo.setText("Has escogido  circulo");
                }
                if (e.getActionCommand().equals("linea")) {
                        labelinfo.setText("Has escogido linea");
                }
                if (e.getActionCommand().equals("color")) {
        Color colore = JColorChooser.showDialog(this, "Choose Background Color", getBackground());
                        labelinfo.setBackground(colore);
                        labelinfo.setText("Color Actual");
                        // le asigno el color elegido a la etiqueta y el boton btncolor
                        labelinfo.setForeground(colore);
                        btncolor.setBackground(colore);                               
                }
                }
        }
}

Lo que no se, es como hacer que se dibuje lo que quiero en el area de dibujo, osea en el panel "areaDibujo"


-------------------------------------------------------------------------------------------------------
BUEN TRABAJO:aplauso::aplauso::aplauso::aplauso::aplaus o:

ME GUSTARIA SABER SI YA RESOLVISTES EL PROBLEMA, YA LOGRASTES QUE PINTARA .. ESPERO ME RESPONDAS PRONTO


La zona horaria es GMT -6. Ahora son las 18:55.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.