Que no puedo poner jChceckBox a jTable de la célula. Más probable es que puedo poner a la casilla de la tabla, pero cuando voy a ejecutar el módulo con esa tabla, la celda donde debe casilla muestra el texto «true» o «false». Los comportamientos de la célula son el mismo como una casilla de verificación, pero muestra un valor de texto en lugar de la casilla de verificación.

Aquí está el código.

DefaultTableModel dm = new DefaultTableModel();
dm.setDataVector(new Object[][]{{"dd", "Edit", "Delete"},
                                {"dd","Edit", "Delete"}},
                 new Object[]{"Include","Component", "Ekvi"});
jTable1 = new javax.swing.JTable();

jTable1.setModel(dm);


JCheckBox chBox=new JCheckBox();
jTable1.getColumn("Include").setCellEditor(new DefaultCellEditor(chBox));
jScrollPane1.setViewportView(jTable1);
InformationsquelleAutor joseph | 2010-03-13

2 Comentarios

  1. 1

    El editor de celdas define cómo los datos dentro de la tabla se comportan de acuerdo con la edición de su valor, lo que usted necesita es el derecho TableCellRenderer para mostrar correctamente la casilla de verificación dentro de la célula:

    final JCheckBox checkBox = new JCheckBox();
    jTable1.getColumn("Include").setCellRenderer(new DefaultTableCellRenderer() {
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
        {
          check.setSelected(((Boolean)value).booleanValue()) ;
          return check;
        }
    });
    • -1, no es necesario crear una personalizada procesador. JTable, ya ofrece un procesador predeterminado y editor para valores Booleanos.
    • Sí, pero en esta manera de entender cómo funciona. En el otro camino, que acaba de resolver este problema sin llegar a profundizar en el conocimiento.
    • Su punto tiene mérito, y su ejemplo coincide con la del interrogador uso; pero el tutorial mencionado por @camickr ofrece un enfoque versátil. Usted puede agregar una referencia a su respuesta. java.sun.com/docs/books/tutorial/uiswing/components/…
    • Pero esto no es trabajar con otro de los componentes que necesito para usar demasiado jtree. Así que esta explicación tiene más valor para mí, aunque camickr la respuesta está más cerca de mi pregunta y ofrece más simple solución.
    • te refieres a la mina o el sugerido por camickr?
    • Me refiero a camickr la solución no funciona con JComboboxes.
    • el tutorial, citó varios lugares, direcciones de ambas cuestiones. En particular, java.sun.com/docs/books/tutorial/uiswing/components/…
    • +1 muy útil si usted está usando un procesador de celdas personalizado en un JCheckBox campo por otras razones (por ejemplo, cambiar el color de fondo)

  2. 5

    Leer el JTable API y siga el enlace para el Swing tutorial sobre «Cómo Utilizar el cuadro» para un ejemplo de trabajo.

    Básicamente almacenar valores Booleanos en el TableModel, entonces se anula la getColumnClass() método para devolver la clase de cada colulmn y la mesa de elegir el apropiado renderer y editor.

Dejar respuesta

Please enter your comment!
Please enter your name here