Summe einer Spalte in einer jTable?
Ich bin mit einem problem zu versuchen, um Werte aus einer Spalte in eine jTable und zusammenfassen. Dies ist der code den ich bisher:
public void saveTable(){
for(int i = 0; i < jTable2.getRowCount(); i++){
int total = 0;
int Amount = (int) jTable2.getValueAt(i, 5);
total = Amount+total;
System.out.println(total);
}
}
Jedoch, dass ich immer classcastexception-Fehler Fehler speziell:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at my.rcsv1.accounting.DraftInvoice.saveTable(DraftInvoice.java:851)
Welche bezieht sich auf die code-Zeile:
int Amount = (int) jTable2.getValueAt(i, 5);
Was muss ich tun, damit dies funktioniert?
Danke!
Nicht gegossen. Analysieren Sie den Wert mit
Wie das?
Ja, tun Sie es so.
Dann bekomme ich die Fehlermeldung besagt, dass das Objekt kann nicht in eine Zeichenfolge konvertiert werden?
Warum die Verwendung von Zeichenfolgen in Erster Linie für numerische Werte? Ich sage loszuwerden, die Zeichenfolgen und fügen Sie die Werte der Tabelle/Modell als Ganzzahlen
Integer.parseInt
Wie das?
int Amount = Integer.parseInt(jTable2.getValueAt(i, 5));
Ja, tun Sie es so.
Dann bekomme ich die Fehlermeldung besagt, dass das Objekt kann nicht in eine Zeichenfolge konvertiert werden?
Warum die Verwendung von Zeichenfolgen in Erster Linie für numerische Werte? Ich sage loszuwerden, die Zeichenfolgen und fügen Sie die Werte der Tabelle/Modell als Ganzzahlen
InformationsquelleAutor BEE | 2014-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wird das tun,
double d = Double.parseDouble(jTable2.getValueAt(i, 5)+""); int Amount = (int) d;
Aber seien Sie vorsichtig, die Zahl wird gerundet werden. 0.99 = 0 etc..
Gibt es keine Möglichkeit, zu verhindern, dass es immer abgerundet?
Es spielt keine Rolle, wenn Sie Ihre Eingabe sind nur ganze zahlen. Aber wenn Sie wollen, arbeiten mit reellen zahlen kann man einfach nicht speichern es als ganze Zahl ohne Rundung gestrichen.
InformationsquelleAutor Daniel Kec
Umwandlung in einen primitiven Datentyp, sollten Sie analysieren.
Versuchen Sie dies:
int amount = Integer.parseInt(jTable2.getValueAt(i, 5));
Auch Sie sollte nicht beginnen Variablennamen mit einem Großbuchstaben ie
int Amount
sollteint amount
InformationsquelleAutor Liam de Haas
Ausnahme, sagt Sie gespeicherte Zeichenfolge in dieser Spalte.
Könnten Sie in besseren Stil, indem Sie das Datenmodell,
jTable.getModel()
. Aber das ist es ja:InformationsquelleAutor Joop Eggen