Autor Tema: insertar una linea en una ventana en JAVA  (Leído 11055 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
insertar una linea en una ventana en JAVA
« en: 07 de Enero de 2010, 15:34:33 »
es increíble, pero no encuentro la forma de poner una línea en una ventana, y el netbeans no tiene un control "linea" para hacerlo.

lo que me gustaría es colocar una línea asi:




y por mas que busco, solo hallo este ejemplo:

http://www.java2s.com/Code/Java/2D-Graphics-GUI/Drawline.htm

que por supuesto se sale de la programación habitual porque hay que meterse con gráficos avanzados.

es mi primera incursión a la programación GUI, y ya estoy llevando trancazos, por cosas sencillas  :8}

¿alguien sabe cómo?



« Última modificación: 09 de Enero de 2010, 15:48:49 por PalitroqueZ »
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado IIIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
Re: insertar una linea en una ventana en JAVA
« Respuesta #1 en: 08 de Enero de 2010, 21:33:47 »
El ejemplo que encontraste es para Applets, para Frames lo haces de la siguiente forma:

Creas una clase derivada del JPanel, a este panel le añades los check boxes o cualquier componente que necesites,
dentro de esta clase sobre escribes la funcion paintComponent() y le añades la funcion para pintar la linea.


class MiPanel extends JPanel
{
     public void paintComponent(Graphics g)
     {         
          g.drawLine(50,50,100,150);
     }
}

El ejemplo completo para pintar una linea quedaria asi:

/////////////////Clase DIBUFRAME

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DibuFrame extends JFrame
{       
    public DibuFrame()
    {
                             
        MiPanel mp = new MiPanel();
                 
        setSize(new Dimension(400, 400));
                  
        this.addWindowListener
        (
            new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    DibuFrame.this.windowClosed();
                }
            }
        ); 
           
        add(mp);
    }
       
    protected void windowClosed()
   {   
        System.exit(0);
    }
}


//// Clase que extiende las funcionalidades del Panel

class MiPanel extends JPanel
{
    public void paintComponent(Graphics g)
   {
      g.drawLine(0,0,50,50);   
   } 
}


/////////////// Clase que executa MAIN

public class Dibu {

       public static void main(String[] args) {
       
        DibuFrame frame = new DibuFrame();               
        frame.setVisible(true);
    }
   
}


Si notas lo unico que necesitas hacer en trabajar sobre el nuevo panel, se ve mucho codigo pero todo lo demas es para crear el frame.

Espero te sirva de algo.

"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas."

Albert Einstein

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: insertar una linea en una ventana en JAVA
« Respuesta #2 en: 09 de Enero de 2010, 15:48:35 »
Hola IIIC


El ejemplo que encontraste es para Applets, para Frames lo haces de la siguiente forma:

...

con razón no me funcionaba!!

con tu ayuda y la de un usuario en un foro de java, he adaptado un poco el código y a la final me ha quedado así:

Código: Java
  1. ...
  2.     @Override
  3.      public void paint(Graphics g)
  4.      {
  5.         super.paint(g);
  6.         g.drawLine(75, 92, 237, 257);
  7.         g.dispose();
  8.      }

es decir, ya tenía declarada la ventana, lo que tenía que hacer, era dibujar la línea a través del método paint (redefinido). por lo que veo las cosas que no existan hay que escribirlas por código. Estaba leyendo por allí algo relacionado a la creación de nuevos componentes, pero lo voy a dejar así por los momentos. Voy a seguir con la aplicación que estoy escribiendo.  :mrgreen:





Gracias  :)

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek