Re: Dividir una celda de una tabla en varias celdas (JTable)

David Castañeda <davidecv-/[email protected]> Mon, 7 Sep 2009 06:27:54 -0700 (PDT)
Newsgroups gmane.comp.java.javaspain
Message-ID <[email protected]>
Es posible que te funcione con lo de la tabla, vas bien, pero tienes que crear un render especial que devuelva un componente JTable, para esto busca como crear TableCellRenderer.





________________________________
From: Darkman shadows <darkman87ucr-/[email protected]>
To: [email protected]
Sent: Thursday, September 3, 2009 8:45:49 PM
Subject: [javaSpain] Dividir una celda de una tabla en varias celdas (JTable)

   
Buenas, 
Nunca había tenido esta necesidad, generalmente con las celdas normales de un JTable esta bien para presentar datos; Pero en la actualidad estoy trabajando en un proyecto de la U para una escula y ocupan pasar el sist (hojas de cálculo) a una app. Aca esta el problema, hay ocasiones en las que una celda se ocupa dividir en varias, he investigando con TableCellRenderer, column model y Tablecelleditor pero todavía no le he encontrado solución.
Entre las opciones fue crear una tabla dentro de una celda, ya había echo esto con una imagen y funciona, creí que al ser objetos era igual pero no fue así, ya que lanza el "string del objeto" y no muestra la tabla (adjunto código).
Si alguien conoce una alternativa, o sabe implementar algunas de las mencionadas le agradezco si la comparte.
 
 
------------ --------- -------
-Esta seria la tabla-
------------ --------- -------
 
jTable1 = new javax.swing. JTable();
  
jTable1.setModel( new javax.swing. table.DefaultTab leModel(
    createArray( ),
    new String [] {
        "uno", "dos", "tres", "cuatro"
    }
)
{
    Class[] types = new Class [] {
        javax.swing. JTable.class, java.lang.String. class,
        java.lang.String. class, java.lang.String. class
    };
  
    public Class getColumnClass( int columnIndex) {
        return types [columnIndex] ;
    }
}
);
  
  
  
------------ -
-Método-
------------ -
  
private Object[][] createArray( ) {
        Object[][] elemArray = new Object[4][4] ;
        
        int cont = 0;
  
        JTable tablaTemp = new javax.swing. JTable(1, 1);
  
        tablaTemp.setSize( 10, 20);
tablaTemp.setModel( new javax.swing. table.DefaultTab leModel(
    new Object [][] {
        {null, null}
    },
    new String [] {
        "Title 1", "Title 2"
    }
));
        for (int i=0; i<4; i++) {      
            elemArray[cont] [0] = (JTable)tablaTemp;
            elemArray[cont] [1] = (String)"darkman" ;
            elemArray[cont] [2] = (String)"Luis" ;
            elemArray[cont] [3] = (String)"Diego" ;
             
            ++cont;
        }//end for 
        
        return elemArray;
    }//end method
  
  
  
javax.swing. JTable[,0, 0,10x20,invalid, alignmentX= 0.0,alignmentY= 0.0,border= ,flags=251658568 ,maximumSize= ,minimumSize= ,preferredSize= ,autoCreateColum nsFromModel= true,autoResizeM ode=AUTO_ RESIZE_SUBSEQUEN T_COLUMNS, cellSelectionEna bled=false, editingColumn= -1,editingRow= -1,gridColor= javax.swing. plaf.ColorUIReso urce[r=122, g=138,b=153] ,preferredViewpo rtSize=java. awt.Dimension[ width=450, height=400] ,rowHeight= 16,rowMargin= 1,rowSelectionAl lowed=true, selectionBackgro und=javax. .swing.plaf. ColorUIResource[ r=184,g=207, b=229],selection Foreground= sun.swing. PrintColorUIReso urce[r=51, g=51,b=51] ,showHorizontalL ines=true, showVerticalLine s=true]
 
 
 
 
 
 
 
 

-------
DarkMan87
"La civilización no suprime la barbarie, la perfecciona. " Voltaire. 
  

________________________________

¡Obtén la mejor experiencia en la web!
Descarga gratis el nuevo Internet Explorer 8
http://downloads. yahoo.com/ ieak8/?l= e1