ich eine JTable mit einer benutzerdefinierten Tabelle erstellt haben, machen und benutzerdefinierte Zellen-Editor, dieWie benutzerdefinierten JTable Zellen-Editor und CellRenderers verwenden
das Ergebnis im Bild gibtich die Platte in der gezeigt erstellt erste Tabellenzellen verwenden eine separate Klasse, die JPanel erweitert. und Tabellenwerte wie
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);
hinzufügen Und das ist meine Tabelle benutzerdefinierte Klasse diese Tabelle zu erstellen,
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 gedacht wird das Panel gezeigt wird, wie ich erwartete ich kann nicht in den Typ Textfeld oder ändern Sie das Kontrollkästchen oder klicken Sie auf die Schaltfläche. Bitte sag mir, wie ich das lösen kann.
Beenden der Bearbeitung gehört in den Editor, nicht in das Panel. Auch, das Modell von außen actionListener ist ... streitbar ;-) – kleopatra
vielen Dank für den tollen Fang, BTW dieser Code wird von Ihrer Ehrlichkeit mehr als 3 Mal überarbeitet, ich habe versucht, bewegen und Action von JTable von Rob (Ich denke, dass nichts besseres, frei und einfacher um), keine Änderungen und Veranstaltung sind ziemlich similair, – mKorbel
Thanx viel mKorbel – Harsha