Folgendes Problem: ich bin gerade dabei, mich in die Modularisierung von Java-Programmen einzufinden. Hier der Code:
Die Methode neuerEintrag() ruft die Sub-Methode eingabeDaten() (Zeile 83) auf, an welche ein String-Array überliefert bekommt (nennt sich hier a). Nun sollen in eingabeDaten weitere Daten an das Array angehängt werden und dieses dann an neuerEintrag zurückgegeben werden. Nur ist das jetzt mein Problem: wie genau bekomme ich das hin?
Java:
static Object[][] eingabeDaten(Object arrayDaten[][]){
String auto = "",
kunde = "",
kilometer = "",
verleihdatum = "",
rueckgabe = "";
Date datum1 = null,
datum2 = null;
int anzKM = 0;
/*
* zunächst werden die Variablen auto,kunde,kilometer,verleihdatum und rueckgabe als leerer String initialisiert
* danach werden zwei leere Datumsvariablen erzeugt
* und zuletzt Initialisierung der Variable anzKM als Integer mit dem Wert 0
*/
DateFormat dateFormatter = DateFormat.getDateInstance(DateFormat.LONG);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
kunde = JOptionPane.showInputDialog("Wie heißt der Kunde?"); // Abfrage, wie der neue Kunde heißt
auto = JOptionPane.showInputDialog("Um welchen Wagentyp handelt es sich?"); // Abfrage, welches Auto er ausgeliehen hat
try
{
datum1 = dateFormat.parse(JOptionPane.showInputDialog("Wann wurde der Wagen verliehen?"));
datum2 = dateFormat.parse(JOptionPane.showInputDialog("Wann wurde der Wagen zurückgegeben?"));
}
catch(ParseException e)
{
JOptionPane.showMessageDialog(null, "Sie haben kein gültiges Datum eingegeben!");
//return;
}
/*
* im try-catch-Block wird geprüft, ob die beiden eingegebenen Werte auch wirklich Datumswerten entsprechen
* Wenn nicht, wird ein Hinweis ausgegeben und die Methode über die Rückgabe von return; abgebrochen
*/
try
{
anzKM = Integer.parseInt(JOptionPane.showInputDialog("Geben Sie an, wie viele Kilometer der Kunde \""+kunde+"\" mit dem Auto \""+auto+"\" gefahren ist!"));
}
catch(NumberFormatException e)
{
JOptionPane.showMessageDialog(null, "Sie haben keine gültige Zahl eingegeben!");
//return;
}
/*
* im try-catch-Block wird geprüft, ob der eingegebene Wert auch wirklich ein Zahlenwert ist
* Wenn nicht, wird ein Hinweis ausgegeben und die Methode über die Rückgabe von return; abgebrochen
*/
arrayDaten[arrayDaten.length][0] = kunde;
arrayDaten[arrayDaten.length][1] = auto;
arrayDaten[arrayDaten.length][2] = datum1;
arrayDaten[arrayDaten.length][3] = datum2;
arrayDaten[arrayDaten.length][4] = anzKM;
return (String[][]) arrayDaten;
}
private void neuerEintrag(){
int GesKM = 0;
// Initialisierung der Variable GesKM als Integer mit dem Wert 0
Object a[][] = new Object [jTableDaten.getRowCount()+1][b.length]; // zweidimensionales Array vom Typ Object
if(jTableDaten.getRowCount() != 0) // wenn Einträge vorhanden sind, dann..
{
for(int intRow = 0;intRow <= jTableDaten.getRowCount()-1;intRow++) //..soll die äußere Schleife von 0 bis Anzahl der vorhandenen Zeile -1 laufen..
{
for(int intCol = 0; intCol <= jTableDaten.getColumnCount()-1; intCol++) //..wobei jeweils die einzelnen Spalten der Tabelle einmal komplett durchlaufen werden
{
a[intRow][intCol] = jTableDaten.getValueAt(intRow, intCol); //..und die Werte entsprechend in einem Array a zwischengespeichert werden
}
}
}
eingabeDaten(a);
/*
* Wenn die Daten alle korrekt eingegeben wurden, werden diese nun in das Array geschrieben
*/
jTableDaten.setModel(new javax.swing.table.DefaultTableModel(a,b)); // Nun werden die Daten des Arrays a und die Überschriften aus dem Array b wieder in die Tabelle geschrieben
}
Die Methode neuerEintrag() ruft die Sub-Methode eingabeDaten() (Zeile 83) auf, an welche ein String-Array überliefert bekommt (nennt sich hier a). Nun sollen in eingabeDaten weitere Daten an das Array angehängt werden und dieses dann an neuerEintrag zurückgegeben werden. Nur ist das jetzt mein Problem: wie genau bekomme ich das hin?