Ich erstelle eine Swing-Anwendung für die Arbeit und ich habe Probleme mit meiner JTable.Zeile wird nicht zum Ende hinzufügen meine JTable mit Vektoren
Der Prozess besteht darin, zu prüfen, ob eine Datei existiert, und wenn dies der Fall ist, rufen Sie die Informationen aus der Datei ab und füllen die JTable auf. Das funktioniert gut.
Ich gebe Daten in meine Textfelder ein, wähle aus Dropdown-Box und wenn ich auf die Schaltfläche Speichern klicke, schreibe ich die Informationen in die Datei (die ohne Problem abgeschlossen wird) und nachdem die Datei erstellt wurde, möchte ich habe die Zeile zu meinem Ende der Tabelle hinzugefügt. Hier habe ich Probleme.
Ich am Ende Aufruf der AddRow-Methode in der OutputTable meine Weitergabe der Daten von dem, was der Benutzer eingegeben hat. Die Daten werden in den Vektor richtig gespeichert, wie Sie hier sehen können:
d1 is[999999999, 27-May-2016, asdfasdf, OCOB, UA2, 1, asdf, sadsadfasdf, IU2, 1, 28-May-2016, In Progress]
d2 is[999999999, 27-May-2016, asdfasdf, OCOB, UA2, 1, asdf, sadsadfasdf, IU2, 1, 28-May-2016, In Progress]
Aber mein dtm.addRow(data)
wird die Zeile der Tabelle nicht hinzufügen.
Kann jemand helfen?
Dies ist meine Klasse, die die Daten aus der Datei abruft, um die Tabelle zu Beginn meiner Anwendung zu füllen. Die Aktion wird über eine Schaltfläche ausgeführt.
Meine addRow-Methode gehört in diese Klasse.
public class OutputTable {
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void populateTable(Vector data){
Vector columnName = new Vector(12);
columnName.addElement("ID");
columnName.addElement("<HTML>DATE <BR/>Retrieve");
columnName.addElement("<HTML>Name of <BR/>Module");
columnName.addElement("<HTML>Type of <BR/>Module");
columnName.addElement("<HTML>Environment <BR/>retrieve from");
columnName.addElement("<HTML>Stage <BR/>retrieve from");
columnName.addElement("<HTML>Working <BR/>location");
columnName.addElement("<HTML>Description <BR/>of changes");
columnName.addElement("<HTML>Environment <BR/>moved to");
columnName.addElement("<HTML>Stage <BR/>move to");
columnName.addElement("<HTML>Date of the <BR/>endevor");
columnName.addElement("<HTML>Current <BR/>Work <BR/>Status");
DefaultTableModel dtm = new DefaultTableModel(data, columnName);
final JTable table = new JTable();
table.setModel(dtm);
table.setFillsViewportHeight(true);
table.setPreferredScrollableViewportSize(table.getPreferredSize());
JScrollPane scrollPane = new JScrollPane(table);
table.getTableHeader().setPreferredSize(new Dimension(scrollPane.getWidth(),60));
scrollPane.setViewportBorder(UIManager.getBorder("Table.scrollPaneBorder"));
scrollPane.setBounds(10, 425, 875, 195);
EndevorChanges.frmEndevorChanges.getContentPane().add(scrollPane);
}
public static void addRow(String UserID, String DateRtrv, String ModRtrv, String ModType, String EnvFrom, String StgFrom, String WrkngLct, String Desc, String EnvTo, String StgTo, String DateTo, String WrkSts) {
System.out.println("Im inside the addrow method.");
Vector<Vector<String>> data = new Vector<Vector<String>>();
Vector<String> d = new Vector<String>();
Vector columnName = new Vector(12);
String[] strngArray = {UserID, DateRtrv, ModRtrv, ModType, EnvFrom, StgFrom, WrkngLct, Desc, EnvTo, StgTo, DateTo, WrkSts};
/* columnName.addElement("ID");
columnName.addElement("<HTML>DATE <BR/>Retrieve");
columnName.addElement("<HTML>Name of <BR/>Module");
columnName.addElement("<HTML>Type of <BR/>Module");
columnName.addElement("<HTML>Environment <BR/>retrieve from");
columnName.addElement("<HTML>Stage <BR/>retrieve from");
columnName.addElement("<HTML>Working <BR/>location");
columnName.addElement("<HTML>Description <BR/>of changes");
columnName.addElement("<HTML>Environment <BR/>moved to");
columnName.addElement("<HTML>Stage <BR/>move to");
columnName.addElement("<HTML>Date of the <BR/>endevor");
columnName.addElement("<HTML>Current <BR/>Work <BR/>Status");
*/
DefaultTableModel dtm = new DefaultTableModel(data, columnName);
JTable table = new JTable();
//table.setModel(dtm);
System.out.println("the data is: " + data.toString());
for (int lmnts = 0; lmnts < 12; lmnts++){
d.add(strngArray[lmnts]);
System.out.println("element" + lmnts + " value is: " + strngArray[lmnts]);
System.out.println("d1 is" + d);
}
data.add(d);
System.out.println("d2 is" + d);
dtm.addRow(data);
//dtm.insertRow(4, data);
dtm.fireTableDataChanged();
table.repaint();
System.out.println("at the end of the method");
}
}
thanx wird gehen und meine Logik ändern – steve