Wie benutzerdefinierte JTable cell-editor und cell-renderer

Habe ich eine JTable mit einem eigenen Tisch Rendern und benutzerdefinierter Zellen-editor gibt das Ergebnis im Bild

Wie benutzerdefinierte JTable cell-editor und cell-renderer

Ich habe das panel in der ersten Tabelle Zellen mit einer separaten Klasse erweitert JPanel. und fügen Sie der Tabelle Werte,

        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);

- Und das ist meine Tabelle benutzerdefinierte Klasse erstellen, die diese Tabelle,

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.");
        }
    }

Mein problem ist, dachte das panel wird gezeigt, wie ich erwartet, ich kann nicht geben Sie in das Textfeld ein oder ändern Sie das Kontrollkästchen oder klicken Sie auf die Schaltfläche. bitte sagen Sie mir, wie man dieses Problem lösen.

InformationsquelleAutor der Frage Harsha | 2012-08-08

Schreibe einen Kommentar