Utworzono JTable z niestandardowych tabeli renderowania i redaktor komórek niestandardowego, który daje wynik w obrazieJak korzystać z edytora komórek niestandardowych JTable i renderujący komórki
stworzyłem panel pokazany w pierwsze komórki tabeli używające oddzielnej klasy rozszerzającej JPanel. i dodać wartości tabeli jak
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);
I to jest mój stół zwyczaj klasa stworzyć tę tabelę,
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.");
}
}
Mój problem jest uważany panel jest pokazane, jak się spodziewałem, że nie można wpisać w pole tekstowe lub zmień pole wyboru lub kliknij przycisk. proszę powiedz mi, jak rozwiązać ten problem.
zatrzymanie edycji należy do edytora, a nie do panelu. Również zepsucie modelu z zewnątrz actionListener jest ... dyskusyjne ;-) – kleopatra
dziękuję za wspaniały połów, przy okazji ten kod jest poprawiony przez twoją szczerość ponad 3 razy, próbowałem przenieść i użyć Action z JTable autorstwa Roba (Myślę, że nie ma nic lepszego, łatwiejszego i prostszego), żadne zmiany i wydarzenie nie są uruchamiane w całkiem podobny sposób, – mKorbel
Niż dużo mKorbel – Harsha