Hallo Leute,
wahrscheinlich wurde das Thema schon tausendmal behandelt, aber ich bekomme es nicht hin.
Ich lade eine HashMap in einen JTable (AbstractTableModel), wobei der letzte Wert ein Boolean ist und durch Klick verändert werden soll (tut sich nichts...). Ziel ist es, den wert boolean vom Auftrag auf true zu setzen und die Pos. in eine Rechung zu übertragen.
getColumnClass ist mit Boolean ausgestattet und Anzeige funktioniert soweit wunderbar.
Meine getValueAt
Funktioniert super!
setValueAt (hier wird mindestens ein Fehler liegen!)
Handler ist in anderer Klasse eingebunden....
Aufruf beim JTable...
... einer von vielen Versuchen, die Werte neu anzeigen zu lassen.
wahrscheinlich wurde das Thema schon tausendmal behandelt, aber ich bekomme es nicht hin.
Ich lade eine HashMap in einen JTable (AbstractTableModel), wobei der letzte Wert ein Boolean ist und durch Klick verändert werden soll (tut sich nichts...). Ziel ist es, den wert boolean vom Auftrag auf true zu setzen und die Pos. in eine Rechung zu übertragen.
getColumnClass ist mit Boolean ausgestattet und Anzeige funktioniert soweit wunderbar.
Meine getValueAt
Java:
public Object getValueAt(int row, int col)
{
switch (col)
{
case 0: return orderPositions.get(row+1).getPosNr();
case 1: return orderPositions.get(row+1).getAmount();
case 2: return orderPositions.get(row+1).getArticle().getArticleNr();
case 3: return orderPositions.get(row+1).getArticle().getArticleDescription();
case 4: return euro.format(orderPositions.get(row+1).getArticle().getArticlePrice());
case 5: return euro.format(orderPositions.get(row+1).getPositionPrice());
case 6: return !orderPositions.get(row+1).isAccounted();
default: return null;
}
}
Funktioniert super!
setValueAt (hier wird mindestens ein Fehler liegen!)
Java:
public void setValueAt( Object val, int row, int col )
{
getValueAt( row, col );
fireTableCellUpdated( row, col );
}
Handler ist in anderer Klasse eingebunden....
Aufruf beim JTable...
Java:
tb_InvoicePositions.getColumnModel().getSelectionModel().addListSelectionListener(new InvoiceToOrderHandler(this));
... einer von vielen Versuchen, die Werte neu anzeigen zu lassen.
Java:
public void valueChanged(ListSelectionEvent event) {
if (event.getValueIsAdjusting()) {
if (event.getValueIsAdjusting() == true)
{
invoiceToOrderPanel.tb_InvoicePositions.getValueAt(1, 6));
invoiceToOrderPanel.tb_InvoicePositions.setValueAt(Boolean.FALSE, 1, 6);
}
return;
}
}