Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich nutze in einem Programm ein einfaches Tabellen-Modell und alles funktioniert prima.
Java:
tabelle = new JTable(model);
add(new JScrollPane(tabelle), BorderLayout.CENTER);
for (int i = 0; i < radienspalte.size(); i++)
{
Vector vector = new Vector(2);
stringInput = radienspalte.get(i).toString();
doubleInput = Double.parseDouble(stringInput);
vector.add(doubleInput);
stringInput = winkelspalte.get(i).toString();
doubleInput = Double.parseDouble(stringInput);
vector.add(Math.toDegrees(doubleInput));
model.addRow(vector);
}
String[] titel = new String[]{ "R", "Delta-Phi [°]" };
final DefaultTableModel model = new DefaultTableModel(titel,0);
JTable tabelle;
private Vector radienspalte;
private Vector winkelspalte;
Die neue NetBeans-IDE 6.9 meckert nun immer an, dass Vector nicht mehr verwendet werden sollte. Stimmt das? Und falls ja: Wie lässt sich das am einfachen ersetzen? Mit einer ArrayList funktioniert die model.addRow()-Methode nicht mehr. Weiß jemand, wie das am einfachsten geht?
This inspection reports any uses of java.util.Vector or java.util.Hashtable. While still supported, these classes were made obsolete by the JDK1.2 collection classes, and should probably not be used in new development.
Wenn es dich so arg stört kannst du entweder die Meldung abschalten oder eine ArrayList verwenden und dann ein Object[] übergeben, sofern es die Situation erlaubt:
(Ich nehme mal an, dass intern dein Object[] in einen Vector geladen wird ...)
void addRow(Object[] rowData)
Adds a row to the end of the model.
void addRow(Vector rowData)
Adds a row to the end of the model.
Zumindest ist es in meinen Augen eigentlich egal, ob du einen Vector benutzt oder nicht, da die Klasse DefaultTableModel genau so Vectoren benutzt. Also entweder man tauscht alles aus oder lässt es bleiben:
ArrayList -> Object[] -> Vector (total langsam)
Vector -> [call by reference]-> Vector (schneller)
PS: Sollte auffallen, dass alles mit einem Vector ended, wenn man DefaultTableModel verwendet.
Es spricht eigentlich nicht dagegen Vector zu nutzen, zumal das im DefaultTableModel auch verwendet wurde. Vorteil dabei, es ist erst mal threadsicher.
Jetzt werden die Skeptiker meinen: "Da gibts doch spezielle synchonisierte Listentypen dafür." Ja klar gibts die. Aber es ist wesentlich aufwändiger ein entsprechendes TableModel damit zu implementieren, als ein vorhandenes zu nutzen.
Ich für meinen Teil habe nichts gegen den Gebrauch von Vector.