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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Cómo crear este tipo de tablas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cómo crear este tipo de tablas  (Leído 2,037 veces)
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Cómo crear este tipo de tablas
« en: 8 Febrero 2014, 01:10 am »

Creo que es bastante extenso el código para usar títulos en columnas y filas, por eso estaba pensando en usar un GridLayout en vez de tablas.
Pero no estoy muy seguro de cómo hacer esas particiones. Como se observa en la imagen, cada celda presenta dos datos, sólo que el espacio no está igual de dividido.


En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Re: Cómo crear este tipo de tablas
« Respuesta #1 en: 8 Febrero 2014, 12:39 pm »

Lo único que se me ocurre es que las celdas "extrañas" estén divididas en 4 trozos iguales, pero que sólo marque el filo exterior y el de la primera. Crees eso factible? ;)

Salud


En línea

zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: Cómo crear este tipo de tablas
« Respuesta #2 en: 8 Febrero 2014, 14:57 pm »

Yo también estaba pensando en eso... pero, ¿cómo haría usted las divisiones?
No sé si está bien la idea de usar un GridLayout general y que cada celda ocupe un espacio en el GridLayout (así el primer componente es un JPanel vacío y Chile es el segundo JLabel agregado a ese GridLayout).

Y al llegar a las celdas con divisiones, usar otro GridLayout de (2, 2)...
Además no sé cómo hacer asignaciones a los espacios del GridLayout de manera no secuencial. Es decir, yo tendería a hacer un add para el primer valor, un add de un JPanel vacío, otro JPanel vacío y un add al otro valor.

Este es el código que he escrito para generar la tabla completa de momento:
Código:
       JDialog ventanaTabla = new JDialog(ventana, true);
        ventanaTabla.getContentPane().setLayout( new GridLayout(o+2, d+2) );
        ventanaTabla.getContentPane().add( new JPanel() );
        
        for(Paradero p : destinos)
            ventanaTabla.getContentPane().add( new JLabel(p.getNombre()));
        
        ventanaTabla.getContentPane().add( new JLabel("OFERTA") );
        
        for(int i=0; i<o; ++i) {
            ventanaTabla.getContentPane().add( new JLabel(origenes.get(i).getNombre()) );
            for(int j=0; j<d; ++j)
                ventanaTabla.getContentPane().add( matriz[i][j].getPanel() );
            ventanaTabla.getContentPane().add( new JLabel(""+origenes.get(i).getSaldo()) );
        }
            
        ventanaTabla.getContentPane().add( new JLabel("DEMANDA") );
        
        for(Paradero p : destinos)
            ventanaTabla.getContentPane().add( new JLabel(""+p.getSaldo()) );
        
        ventanaTabla.setLocationRelativeTo(ventana);
        ventanaTabla.setVisible(true);

Y este es el resultado:

Ya he conseguido darle cierta forma, pero sí que se ve bien mal.

La clase celda presenta 2 atributos, que son los valores que quiero usar (uno en el cuadro interno y otro fuera) y presenta un método GET que genera un JPanel y lo devuelve. En el JPanel se incluye un JLabel en la posición 0,0 y el otro JLabel en la posición 40,25.
Código:
   public JPanel getPanel() {
        JPanel panelCelda = new JPanel();
        panelCelda.setLayout( null );
        JLabel etiquetaCosto = new JLabel( String.valueOf(costo) );
        etiquetaCosto.setSize(40, 25);
        etiquetaCosto.setLocation(0, 0);
        panelCelda.add( etiquetaCosto );
        JLabel etiquetaSaldo = new JLabel( String.valueOf(saldo) );
        etiquetaSaldo.setSize(40, 25);
        etiquetaSaldo.setLocation(40, 25);      
        panelCelda.setSize(50, 80);
        panelCelda.setBorder( new LineBorder(Color.black, 2));
        return panelCelda;
    }

Muchas gracias por su ayuda. Espero me indique cómo lo haría usted porque tal vez estoy exagerando al usar un Layout de esa forma  :o
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Re: Cómo crear este tipo de tablas
« Respuesta #3 en: 8 Febrero 2014, 16:33 pm »

Pues si, más o menos eso pensaba yo (que tampoco soy un versado en la materia, no te creas que sabes menos que yo  :rolleyes:) Pero vamos, mi pensamiento era similar a ese.

Saludos y ánimo ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como crear Tablas en visual basic 6.0
Programación Visual Basic
mapers 4 12,983 Último mensaje 10 Agosto 2011, 16:27 pm
por raul338
Que necesito para crear una red de este tipo o no se puede
Redes
hunter18 1 1,237 Último mensaje 31 Julio 2012, 03:32 am
por andreselmejor
¿Como crear este tipo de mapa de situación?
Diseño Gráfico
OLM 0 2,783 Último mensaje 2 Noviembre 2012, 20:26 pm
por OLM
Se puede crear un keygen de este tipo?
Ingeniería Inversa
drawn 1 1,219 Último mensaje 16 Abril 2013, 20:00 pm
por MCKSys Argentina
error al crear tablas
PHP
jelsir 3 1,242 Último mensaje 1 Mayo 2014, 08:51 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines