Simpler cast?

NochNixBlicker

Bekanntes Mitglied
Wie caste ich die Spalten 3 und 4 in Zeiten?
Bzw 1 und 2 in Fliesskommazahlen mit 4 Nachkommastellen?
Oder gehört das in Anfängerthemen?

Java:
package einsatz;

import java.awt.BorderLayout;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;

public class TriBpl extends JPanel {

   public TriBpl() {
     String rowData[][] = { { "x-MAN", "3860", "0,8762", "0,153", "198", "Ironman-Langdistanz (DTU Langdistanz)" },
         { "x-MAN", "1900", "0,7858", "0,1446", "195", "Ironman-Half" },
         { "LM", "1500", "0,867", "0,1689", "99",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "LM", "750", "0,9109", "0,1845", "27",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "BL", "1500", "1,0593", "0,157", "50",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "BL", "750", "0,984", "0,2327", "38",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "BL", "400", "1,0057", "0,1889", "22",
             "DTU-Schüler-Triathlon A (12-13) - DTU-Jugend-Triathlon B (14-15) - DTU Fitness" },
         { "BL", "200", "0,6951", "0,0855", "4", "DTU-Schüler-Triathlon B (10-11)" },
         { "BL", "100", "0,4266", "0,0741", "4", "DTU-Schüler-Triathlon C (8-9)" },
         { "BL/LL", "1500", "2,7244", "0,1614", "11",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "BL/LL", "750", "1,2424", "0,2117", "69",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "BL/LL", "400", "1,0225", "0,1637", "77",
             "DTU-Schüler-Triathlon A (12-13) - DTU-Jugend-Triathlon B (14-15) - DTU Fitness" },
         { "BL/LL", "200", "0,5373", "0,0514", "40", "DTU-Schüler-Triathlon B (10-11)" },
         { "LL/KL/RL", "2000", "0,8676", "0,151", "755", "DTU-AK20++ mittel (20-99)" },
         { "LL/KL/RL", "1500", "0,8115", "0,172", "2079",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "LL/KL/RL", "750", "0,7209", "0,1731", "1672",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "LL/KL/RL", "400", "0,3002", "0,0455", "244",
             "DTU-Schüler-Triathlon A (12-13) - DTU-Jugend-Triathlon B (14-15) - DTU Fitness" },
         { "LL/KL/RL", "200", "0,8977", "0,1992", "39", "DTU-Schüler-Triathlon B (10-11)" } };
     String columnNames[] = { "Liga", "Strecke", "mue", "sigma", "n", "Bezeichnung bzw AK" };

     DefaultTableModel model = new DefaultTableModel(rowData, columnNames);
     JTable table = new JTable(model);
     table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

     DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
     rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
     table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN1 = 0;
     TableColumn col = table.getColumnModel().getColumn(INDEX_COLUMN1);
     col.setPreferredWidth(150);

     final int INDEX_COLUMN2 = 1;
     TableColumn col2 = table.getColumnModel().getColumn(INDEX_COLUMN2);
     col2.setPreferredWidth(80);
     table.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN3 = 2;
     TableColumn col3 = table.getColumnModel().getColumn(INDEX_COLUMN3);
     col3.setPreferredWidth(80);
     table.getColumnModel().getColumn(2).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN4 = 3;
     TableColumn col4 = table.getColumnModel().getColumn(INDEX_COLUMN4);
     col4.setPreferredWidth(80);
     table.getColumnModel().getColumn(3).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN5 = 4;
     TableColumn col5 = table.getColumnModel().getColumn(INDEX_COLUMN5);
     col5.setPreferredWidth(60);
     table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN6 = 5;
     TableColumn col6 = table.getColumnModel().getColumn(INDEX_COLUMN6);
     col6.setPreferredWidth(700);

   
     this.add(table);
   }
}
 
Was willst du eigentlich erreichen? Ich verstehe nur Bahnhof. 0.8762 ist keine Zeit, wie willst du es da auf eine Zeit casten? Und was soll da angezeigt werden?
 
Ja, ich dachte nur es sei besser, oder vielmehr ein Cast weniger wenn ich die Minuten mir in Excel als float ausgeben lassen und hier in Java verwende, oder ist es einfach doof. Weil die Spalten 2 und 3 sind Minuten. Sollte ich lieber ein Zeitformat verwenden, aber dann muss ich auch casten weil in der Tabelle auch Strings sind.
Man kann doch von float auf Zeit casten, oder?
 
Nein

man kann es höchstens umrechnen, wenn man die Formel kennt.

Weiterhin geht das aber alles nicht mit deinem DefaultTableModel. Du wirst dann auf jeden Fall ein eigenes TableModel schreiben müssen.
 
Wie wir schon gesagt haben: Es ist KEIN CAST MÖGLICH zwischen einer Fließkommazahl und einer Uhrzeit.
Du musst es umrechnen lassen, aber du kannst für die Spalte einen eigenen CellRenderer schreiben und vielleicht dort umrechnen (100% sicher bin ich mir nicht)
 

Zurück
Oben