Foros del Web » Programación para mayores de 30 ;) » Java »

Centrar celda en JTable

Estas en el tema de Centrar celda en JTable en el foro de Java en Foros del Web. Por mas que busco no encuentro como centrar mis datos de una celda en un Jtable me suena a verlo hecho pero no se ni ...
  #1 (permalink)  
Antiguo 07/08/2007, 04:58
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Antigüedad: 17 años
Puntos: 3
Pregunta Centrar celda en JTable

Por mas que busco no encuentro como centrar mis datos de una celda en un Jtable me suena a verlo hecho pero no se ni como no donde y he buscado en google en el foro y na de na.QUien me echa una mano????
  #2 (permalink)  
Antiguo 07/08/2007, 08:22
 
Fecha de Ingreso: mayo-2007
Mensajes: 210
Antigüedad: 16 años, 11 meses
Puntos: 8
Re: Centrar celda en JTable

DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();
tcr.setHorizontalAlignment(SwingConstans.CENTER);
table.getColumnModel().getColumn(column).setCellRe nderer(tcr);

column es el numero de la columna que deseas que se centren los valores.

salud2
  #3 (permalink)  
Antiguo 08/08/2007, 00:43
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Antigüedad: 17 años
Puntos: 3
Re: Centrar celda en JTable

Muchas gracias vdpazmino me ha servido mucho.

Cita:
Iniciado por vdpazmino Ver Mensaje
DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();
tcr.setHorizontalAlignment(SwingConstants.CENTER);
table.getColumnModel().getColumn(column).setCellRe nderer(tcr);

column es el numero de la columna que deseas que se centren los valores.

salud2
Te faltaba una t en SwingConstants............. jejejejeje
  #4 (permalink)  
Antiguo 26/03/2011, 14:15
Avatar de guichogdl  
Fecha de Ingreso: abril-2010
Ubicación: gdl
Mensajes: 131
Antigüedad: 14 años
Puntos: 1
Mensaje Respuesta: Centrar celda en JTable

muchas gracias por la información, pero...¿donde meto ese codigo?

hice un metodo con ese código que publicaste y lo mando desde otro metodo (el llena el Jtable) pero no centra el texto, podria alguien explicarme donde hacerlo debo poner el código para que haga su función?

Código JAVA:
Ver original
  1. JTable table = new JTable(modelo);
  2.  
  3.  
  4.        public void centrar_datos(){
  5.  
  6.            DefaultTableCellRenderer modelocentrar = new DefaultTableCellRenderer();
  7.             modelocentrar.setHorizontalAlignment(SwingConstants.CENTER);
  8.             table.getColumnModel().getColumn(2).setCellRenderer(modelocentrar);
  9.         }
  10.  
  11.         public void crea_modelo(){
  12.         modelo.addColumn("nombre");
  13.         modelo.addColumn("edad");
  14.         modelo.addColumn("telefono");
  15.     }
  16.  
  17.     public void llenar(){
  18.  
  19.     Object [] fila = new Object[3];
  20.     fila[0] = "jose";
  21.     fila[1] = "25";
  22.     fila[2] = "81102635";
  23.     modelo.addRow(fila);
  24.     centrar_datos(); //<-- lo puse aqui pero no centra los registros en el Jtable
  25.     }
  26.  
  27.  
  28. //lleno la tabla desde un boton con esto
  29.  
  30.          JTABLE.setModel(modelo);
  31.          llenar();


muchas gracias de antemano por su ayuda
  #5 (permalink)  
Antiguo 26/03/2011, 18:18
Avatar de farfamorA  
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 13 años, 5 meses
Puntos: 24
Respuesta: Centrar celda en JTable

No veo donde llamas al crea_modelo(). Deberías poner el código completo de tu clase, no veo tampoco el constructor de tu clase, que es donde generalmente se hace la llamada al método que define el modelo de la tabla. Así se me hace un poco difícil ayudarte. Amigo, no creo que haya gente reptando en los foros para hacerse de códigos fuente ajenos. De todas maneras, deseo ayudarte, y te dejo un ejemplo.
Código Java:
Ver original
  1. package ejemplo01;
  2.  
  3. import javax.swing.SwingConstants;
  4. import javax.swing.table.DefaultTableCellRenderer;
  5. import javax.swing.table.DefaultTableModel;
  6.  
  7. public class Frame extends javax.swing.JFrame {
  8.    
  9.     private javax.swing.JButton btnAgregar;
  10.     private javax.swing.JButton btnCentro;
  11.     private javax.swing.JButton btnDerecha;
  12.     private javax.swing.JButton btnIzquierda;
  13.     private javax.swing.JScrollPane jScrollPane1;
  14.     private javax.swing.JTable miTabla;
  15.  
  16.     DefaultTableModel modeloTabla;
  17.     DefaultTableCellRenderer alinearCentro, alinearDerecha, alinearIzquierda;
  18.  
  19.     public Frame() {
  20.         asignarModeloTabla();
  21.         inicializarRenderers();
  22.         initComponents();
  23.     }
  24.  
  25.     private void asignarModeloTabla(){
  26.         modeloTabla = new DefaultTableModel();
  27.         modeloTabla.addColumn("Codigo");
  28.         modeloTabla.addColumn("Nombre");
  29.         modeloTabla.addColumn("Sueldo");
  30.     }
  31.  
  32.     private void inicializarRenderers(){
  33.          alinearCentro = new DefaultTableCellRenderer();
  34.          alinearCentro.setHorizontalAlignment(SwingConstants.CENTER);
  35.  
  36.          alinearDerecha = new DefaultTableCellRenderer();
  37.          alinearDerecha.setHorizontalAlignment(SwingConstants.RIGHT);
  38.  
  39.          alinearIzquierda = new DefaultTableCellRenderer();
  40.          alinearIzquierda.setHorizontalAlignment(SwingConstants.LEFT);
  41.     }
  42.  
  43.     private void initComponents() {
  44.  
  45.         jScrollPane1 = new javax.swing.JScrollPane();
  46.         miTabla = new javax.swing.JTable();
  47.         btnCentro = new javax.swing.JButton();
  48.         btnAgregar = new javax.swing.JButton();
  49.         btnIzquierda = new javax.swing.JButton();
  50.         btnDerecha = new javax.swing.JButton();
  51.  
  52.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  53.  
  54.         miTabla.setModel(modeloTabla);
  55.         jScrollPane1.setViewportView(miTabla);
  56.  
  57.         getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
  58.  
  59.         btnCentro.setText("Centrar");
  60.         btnCentro.addActionListener(new java.awt.event.ActionListener() {
  61.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  62.                 btnCentroActionPerformed(evt);
  63.             }
  64.         });
  65.         getContentPane().add(btnCentro, java.awt.BorderLayout.PAGE_END);
  66.  
  67.         btnAgregar.setText("Agregar fila");
  68.         btnAgregar.addActionListener(new java.awt.event.ActionListener() {
  69.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  70.                 btnAgregarActionPerformed(evt);
  71.             }
  72.         });
  73.         getContentPane().add(btnAgregar, java.awt.BorderLayout.PAGE_START);
  74.  
  75.         btnIzquierda.setText("Izquierda");
  76.         btnIzquierda.addActionListener(new java.awt.event.ActionListener() {
  77.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  78.                 btnIzquierdaActionPerformed(evt);
  79.             }
  80.         });
  81.         getContentPane().add(btnIzquierda, java.awt.BorderLayout.LINE_START);
  82.  
  83.         btnDerecha.setText("Derecha");
  84.         btnDerecha.addActionListener(new java.awt.event.ActionListener() {
  85.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  86.                 btnDerechaActionPerformed(evt);
  87.             }
  88.         });
  89.         getContentPane().add(btnDerecha, java.awt.BorderLayout.LINE_END);
  90.  
  91.         pack();
  92.     }
  93.  
  94.     private void btnAgregarActionPerformed(java.awt.event.ActionEvent evt) {
  95.         modeloTabla.addRow(new Object[]{"01", "usuario", "4,251.25"});
  96.     }
  97.  
  98.     private void btnCentroActionPerformed(java.awt.event.ActionEvent evt) {
  99.         miTabla.getColumnModel().getColumn(2).setCellRenderer(alinearCentro);
  100.     }
  101.  
  102.     private void btnIzquierdaActionPerformed(java.awt.event.ActionEvent evt) {
  103.         miTabla.getColumnModel().getColumn(2).setCellRenderer(alinearIzquierda);
  104.     }
  105.  
  106.     private void btnDerechaActionPerformed(java.awt.event.ActionEvent evt) {
  107.         miTabla.getColumnModel().getColumn(2).setCellRenderer(alinearDerecha);
  108.     }
  109.  
  110.     public static void main(String args[]) {
  111.         java.awt.EventQueue.invokeLater(new Runnable() {
  112.             public void run() {
  113.                 Frame miMarco = new Frame();
  114.                 miMarco.setVisible(true);
  115.                 miMarco.setLocationRelativeTo(null);
  116.             }
  117.         });
  118.     }
  119. }
  #6 (permalink)  
Antiguo 26/03/2011, 18:32
Avatar de guichogdl  
Fecha de Ingreso: abril-2010
Ubicación: gdl
Mensajes: 131
Antigüedad: 14 años
Puntos: 1
Respuesta: Centrar celda en JTable

gracias por la respuesta.. jeje para nada eso del rapto de codigo, opte por poner solo eso para que fuera mas claro y menos enredoso, pero parece que me falta informacion, disculpame, aqui dejo el codigo completo de esa ventana que la tengo de prueba

Código JAVA:
Ver original
  1. import javax.swing.SwingUtilities;
  2. import java.awt.BorderLayout;
  3. import java.util.Vector;
  4.  
  5. import javax.swing.JPanel;
  6. import javax.swing.JFrame;
  7. import javax.swing.JTable;
  8. import javax.swing.JTextField;
  9. import javax.swing.SwingConstants;
  10. import javax.swing.table.DefaultTableCellRenderer;
  11. import javax.swing.table.DefaultTableModel;
  12. import javax.swing.table.TableCellRenderer;
  13.  
  14. import java.awt.Dimension;
  15. import java.awt.ScrollPane;
  16. import java.awt.Rectangle;
  17. import javax.swing.JScrollPane;
  18. import javax.swing.JButton;
  19.  
  20. public class ABC extends JFrame {
  21.  
  22.     private static final long serialVersionUID = 1L;
  23.     private JPanel jContentPane = null;
  24.     private JButton BOTON = null;
  25.     Vector vector = new Vector();
  26.     DefaultTableModel modelo = new DefaultTableModel();
  27.     private JScrollPane jScrollPane = null;
  28.     private JTable TABLA1 = null;
  29.     //JTable table = new JTable(modelo);
  30.  
  31.     MODELO modelox = new MODELO();//hace que el Jtable no sea Editable
  32.     JTable table = new JTable(modelox);
  33.    
  34.     public void centrar_datos(){
  35.  
  36.         DefaultTableCellRenderer modelocentrar = new DefaultTableCellRenderer();
  37.         modelocentrar.setHorizontalAlignment(SwingConstants.CENTER);
  38.         table.getColumnModel().getColumn(2).setCellRenderer(modelocentrar);
  39.     }
  40.  
  41.     public void crea_modelo(){
  42.         modelox.addColumn("nombre");
  43.         modelox.addColumn("edad");
  44.         modelox.addColumn("telefono");
  45.     }
  46.  
  47.     public void llenar(){
  48.         Object [] fila = new Object[3];
  49.         fila[0] = "jose";
  50.         fila[1] = "25";
  51.         fila[2] = "36590764";
  52.         modelox.addRow(fila);
  53.         centrar_datos();
  54.     }
  55.  
  56.     private JScrollPane getJScrollPane() {
  57.         if (jScrollPane == null) {
  58.             jScrollPane = new JScrollPane();
  59.             jScrollPane.setBounds(new Rectangle(30, 46, 276, 117));
  60.             jScrollPane.setViewportView(getTABLA1());
  61.         }
  62.         return jScrollPane;
  63.     }
  64.  
  65.     private JTable getTABLA1() {
  66.         if (TABLA1 == null) {
  67.             TABLA1 = new JTable();
  68.         }
  69.         return TABLA1;
  70.     }
  71.  
  72.     private JButton getBOTON() {
  73.         if (BOTON == null) {
  74.             BOTON = new JButton();
  75.             BOTON.setBounds(new Rectangle(65, 180, 90, 28));
  76.             BOTON.setText("Tabla 1");
  77.             BOTON.addActionListener(new java.awt.event.ActionListener() {
  78.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  79.  
  80.                     TABLA1.setModel(modelox);
  81.                     llenar();
  82.                 }
  83.             });
  84.         }
  85.         return BOTON;
  86.     }
  87.  
  88.     public static void main(String[] args) {
  89.         // TODO Auto-generated method stub
  90.         SwingUtilities.invokeLater(new Runnable() {
  91.             public void run() {
  92.                 ABC thisClass = new ABC();
  93.                 thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  94.                 thisClass.setVisible(true);
  95.             }
  96.         });
  97.     }
  98.  
  99.     public ABC() {
  100.         super();
  101.         initialize();
  102.     }
  103.  
  104.     private void initialize() {
  105.         this.setSize(466, 333);
  106.         this.setContentPane(getJContentPane());
  107.         this.setTitle("JFrame");
  108.     }
  109.     private JPanel getJContentPane() {
  110.         if (jContentPane == null) {
  111.             jContentPane = new JPanel();
  112.             jContentPane.setLayout(null);
  113.             jContentPane.add(getJScrollPane(), null);
  114.             jContentPane.add(getBOTON(), null);
  115.             crea_modelo();
  116.         }
  117.         return jContentPane;
  118.     }
  119.  
  120. }
  #7 (permalink)  
Antiguo 15/02/2012, 17:09
 
Fecha de Ingreso: febrero-2012
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Centrar celda en JTable

EXCELENTE !!!

Eres un genio.
  #8 (permalink)  
Antiguo 22/02/2012, 09:19
 
Fecha de Ingreso: febrero-2012
Ubicación: oaxaca
Mensajes: 1
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Centrar celda en JTable

wow si que son genios!!
una pregunta alguien aun conserva el codigo y programa?
me podran compartir el proyecto para netbeans
quiero entenderle mas
  #9 (permalink)  
Antiguo 03/06/2012, 22:22
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Centrar celda en JTable

Excelente, muchas gracias me sirvio de mucho.
  #10 (permalink)  
Antiguo 21/02/2013, 10:23
 
Fecha de Ingreso: octubre-2012
Ubicación: Circasia-Quindio
Mensajes: 6
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Centrar celda en JTable

Elemental muchas gracias.
  #11 (permalink)  
Antiguo 05/05/2013, 22:04
 
Fecha de Ingreso: mayo-2013
Mensajes: 1
Antigüedad: 10 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Re: Centrar celda en JTable

Cita:
Iniciado por vdpazmino Ver Mensaje
DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();
tcr.setHorizontalAlignment(SwingConstans.CENTER);
table.getColumnModel().getColumn(column).setCellRe nderer(tcr);

column es el numero de la columna que deseas que se centren los valores.

salud2

Muchas gracias por tu respuesta a este problema..que aunque no lo plantee yo.. tampoco sabia hacerlo.. y tu respuesta me ayudo en mi proyecto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 5 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 03:01.