Comment utiliser personnalisée JTable cellule de l'éditeur et de rendu de cellule

J'ai créé une JTable avec une table personnalisée de rendu et de cellule personnalisé éditeur qui donne le résultat dans l'image

Comment utiliser personnalisée JTable cellule de l'éditeur et de rendu de cellule

J'ai créé le panneau indiqué dans le premier tableau, les cellules à l'aide d'une catégorie distincte qui s'étendait Composite. et ajouter les valeurs de la table comme,

        tbl.setCellEditor(new customCell());
        tbl.getColumnModel().getColumn(0).setCellRenderer(new customCell());

        DefaultTableModel dtm = (DefaultTableModel) tbl.getModel();

        Vector v = new Vector();
        v.add(new Panel());
        v.add("Test");
        dtm.addRow(v);

        v.clear();
        v.add(new Panel());
        v.add("Test 2");
        dtm.addRow(v);

Et c'est ma table de classe personnalisée pour créer cette table,

class customCell extends DefaultTableModel implements TableCellRenderer, TableCellEditor {

        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            Panel p = new Panel();            
            table.setRowHeight(row, p.getHeight());
            return p;
        }

        public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {

            return new Panel();
        }

        public Object getCellEditorValue() {
            return "";
        }

        public boolean isCellEditable(EventObject anEvent) {
            throw new UnsupportedOperationException("Not supported yet.");
        }

        public boolean shouldSelectCell(EventObject anEvent) {
            return true;
        }

        @Override
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return true;
        }

        public boolean stopCellEditing() {
            return true;
        }

        public void cancelCellEditing() {
            throw new UnsupportedOperationException("Not supported yet.");
        }

        public void addCellEditorListener(CellEditorListener l) {
            throw new UnsupportedOperationException("Not supported yet.");
        }

        public void removeCellEditorListener(CellEditorListener l) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
    }

Mon problème est la pensée, le panneau est illustré comme je m'y attendais je ne peut pas taper dans le champ de texte ou de changement de case à cocher ou cliquez sur le bouton. merci de me dire comment résoudre ce problème.

OriginalL'auteur Harsha | 2012-08-08