Methodenaufruf

pg1337

Bekanntes Mitglied
Hallo,

schreibe eine GUI, in der ich Werte eingeben kann, die dann über eine Methode in der Datenbank gespeichert werden sollen.

Allerdings weiß ich nun nicht, wie ich die Methode in der GUI aufrufen soll? ???:L

Java:
List<Ausgaben> ausgabeList= new ArrayList<Ausgaben>(); // Immer in GUI zuerst erstellen
		
		DatabaseAccess data= new DatabaseAccess();



das steht in der Main von der Gui, in der Klasse DateabaseAccess, in der ich mit der Datenbank verbinde habe ich das hier stehen:

Java:
public void saveAusgaben(List<Ausgaben> ausgabeList) throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException
	{
		
		Connection conn= getConnection();
		
		
		Iterator<Ausgaben> iterator= ausgabeList.iterator();
		
		while(iterator.hasNext())
		{
			Ausgaben a= iterator.next(); // Referenz auf nächstes Objekt
			
			pstmt= conn.prepareStatement("INSERT INTO gelduebersicht('Essenkosten', 'Benzinkosten') VALUES(?,?)");
			pstmt.setDouble(1, a.getBenzinkosten());
			pstmt.setDouble(2, a.getEssenkosten());
			pstmt.executeUpdate();
		}
		
		
	}


Frage: Müsste ich nun nicht in der Methode (In der Gui) :

Java:
if(evt.getActionCommand().equals("Speichern"))
				{
					
					
					
				}

reinschreiben data.saveAusgaben() ?

Oder muss ich noch irgendwas übergeben?

Gruß & Danke für jede Hilfe :)
 

Stelufl

Mitglied
IDR hast du in der GUI doch einen Button oder so, der nichts anderes macht, als z. B. zu Speichern.
Dieser Button ist in deiner Gui irgendwo wie folgt deklariert:

Code:
Button myButton = new Button(Composite parent, SWT.BORDER);

Jetzt brauchst du dem Button doch nur noch einen selection listener hinzuzufügen:

Code:
myButton.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent event){
data.saveAusgabe();
}
});

Ich würde dir aber davon abraten, aus der GUI ein SQL Update zu machen, da du je nach verwendetem GUI Framework die ganze GUI blockierst, sprich einfrierst. Außer du arbeitest mit Threads oder unter Eclipse mit Jobs.

Und equals mit einem String
Code:
evt.getActionCommand().equals("Speichern")
solltest du immer so schreiben:
Code:
"Speichern".equals(evt.getActionCommand());
So wirft die Aussage keine NPE, falls getActionCommand() null sein sollte, denn:

null.equals(Irgendwas) -> NPE
"".equals(null) -> False
 
Zuletzt bearbeitet:

pg1337

Bekanntes Mitglied
Wie füge ich nun in die Liste die Werte aus der GUI ein?

Java:
List<Ausgaben> ausgabeList= new ArrayList<Ausgaben>(); 


// Hier Liste füllen?
					
					try {
						data.saveAusgaben(ausgabeList);
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (InstantiationException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IllegalAccessException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (ClassNotFoundException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
 
Zuletzt bearbeitet:

Stelufl

Mitglied
Ja... ohne Code wo die Daten herkommen und wie Deine GUI nun aussieht wird's auch schwer, zu helfen... und wie handelst du denn sonst GUI Events ab, wenn nicht mit Selectionlistener und co?
 
B

bygones

Gast
@Stelufl
Du redest hier von SWT... deine bsp sind jdf nur dort relevant - weder in AWT noch in Swing
 

pg1337

Bekanntes Mitglied
Ja... ohne Code wo die Daten herkommen und wie Deine GUI nun aussieht wird's auch schwer, zu helfen... und wie handelst du denn sonst GUI Events ab, wenn nicht mit Selectionlistener und co?


Möchte meine Werte aus der GUI wie im vorherigen Post einfach nur in der Liste jetzt speichern.

Wie füge ich die Werte der Liste zu, mit welchem Befehl?
 

pg1337

Bekanntes Mitglied
Das ist jetzt nicht dein ernst oder? :noe:

Du hast eine GUI geschrieben, weißt aber nicht wie man eine Methode aufruft? Wie geht das?

Java:
data.saveAusgaben(ausgabeList)

Wobei die Liste, denke ich mal, zuvor noch mit irgendwelchen Aufgaben gefüllt werden sollte.


Da habe ich mich falsch ausgedrückt.. es geht um das füllen der Liste. Da kenne ich den Befehl grade nichtmehr.

Methodenaufruf ist schon klar, nur die Liste wird noch nicht gefüllt^.^
 

pg1337

Bekanntes Mitglied
Das steht in der Klasse "Ausgaben":

Java:
public class Ausgaben {
	
	double essenkosten;
	double benzinkosten;

	
	public Ausgaben(double essenkosten, double benzinkosten)
	{
		super();
		this.essenkosten= essenkosten;
		this.benzinkosten= benzinkosten;
		
	}

	public Ausgaben() {
		// TODO Auto-generated constructor stub
	}

	public double getEssenkosten() {
		return essenkosten;
	}


	public void setEssenkosten(double essenkosten) {
		this.essenkosten = essenkosten;
	}


	public double getBenzinkosten() {
		return benzinkosten;
	}


	public void setBenzinkosten(double benzinkosten) {
		this.benzinkosten = benzinkosten;
	}

}


was muss ich da jetzt wie der ausgabeList hinzufügen in der GUI Klasse?
Bzw hier abändern:
Java:
ausgabeList.add(ausgaben);


Gruß
 

pg1337

Bekanntes Mitglied
In der GUI schreibe ich die Daten rein..

Verstehe nicht was in der () nach dem .add stehen soll..???:L

Die Daten sollen in der Collection List gespeichert werden und von da aus gespeichert werden (In der Datenbank dann mit dem INSERT INTO befehl)
 
B

bygones

Gast
als bsp fuer arbeiten mit einer collection und dem aufruf einer methode
Java:
List<Ausgaben> alleAusgaben = new ArrayList<Ausgaben>();
alleAusgaben.add(new Ausgaben(50,100));
alleAusgaben.add(new Ausgaben(75,35));
saveAusgaben(alleAusgaben);
wie du nun woher die Ausgaben bekommst etc dass kannst im Grunde nur du wissen
 

pg1337

Bekanntes Mitglied
Java:
DatabaseAccess data= new DatabaseAccess();
				    double d = Double.parseDouble(essen.getSelectedText());
				    double e = Double.parseDouble(benzin.getSelectedText());
				    Ausgaben ausg = new Ausgaben(d,e);
				    ausgabeList.add(ausg);
				    
				    try {
						data.saveAusgaben(ausgabeList);
					} catch (SQLException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					} catch (InstantiationException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					} catch (IllegalAccessException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					} catch (ClassNotFoundException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}


not working yet :s wo ist der fehler?
 

Stelufl

Mitglied
Geehrter Elite Progamer, :autsch:

mit dieser Aussage weiß ich aber immer noch nicht, warum das so ist. Gibt es ne Exception? Passiert einfach nichts? Hast du debuggt? Oder liege ich mit der Annahme richtig, dass du den Fehler selbst nicht weißt und -anstatt zu debuggen- schnell mal etwas Code ins Forum wirfst in der Hoffnung, dass jemand daraus schlau wird?

Da ist in Deinem Code einfach nichts fehlerhaftes festzustellen erstmal. Ich kann auch schließlich schlecht wissen, ob du in dein Benzin oder Essens Feld wirklich nur eine Zahl reingeschrieben hast, oder ob da vielleicht noch "EUR" drangetextet wurde, oder ob da die SQL Syntax falsch ist, oder ob die SQL Zugangsdaten falsch sind oder ob dein SQL Datenmodell nicht mit der SQL Query übereinstimmt, oder, oder. Das weiß keiner hier. Und deswegen sind Aussagen wie "Geht nicht! Warum?" einfach schlecht, denn da steckt auch immer ein Stück weit Faulheit hinter, sich die Mühe zu machen, den Fehler zu beschreiben, oder den Stacktrace zu kopieren, oder zu Debuggen.

Setz halt mal einen Breakpoint an [c]data.saveAusgaben(ausgabeList);[/c] und drück F5, wenn du dort angelangt bist.
 
Zuletzt bearbeitet:

pg1337

Bekanntes Mitglied
Funktioniert jetzt.. das Problem war im Endeffekt dass in der save Methode beim INSERT - Befehl die Datenbank PostgreSQL, die ich benutze, die Spalten mit Großbuchstaben begonnen haben und der INSERT befehl irgendwie nur richtig funktioniert, wenn man die Spalten komplett klein oder Groß schreibt, gemischt jedoch nicht.

Thema hat sich erledigt. Danke für die Hilfe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Thymleaf Methodenaufruf Allgemeine Java-Themen 4
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
A Methodenaufruf funktioniert nicht richtig Allgemeine Java-Themen 5
mrbig2017 Kapselung Methodenaufruf in DLL schlägt fehl! Allgemeine Java-Themen 1
S Methodenaufruf in Unterklassen Allgemeine Java-Themen 3
F Methodenaufruf mit abgeleiteter Klasse als Arg... Allgemeine Java-Themen 10
O Zeitbedingter Methodenaufruf Allgemeine Java-Themen 1
C Objekt Datenverlust nach Methodenaufruf Allgemeine Java-Themen 9
D Frage und Antwort Programm, Problem bei Methodenaufruf Allgemeine Java-Themen 3
127.0.0.1 Methodenaufruf -cannot find symbol- Allgemeine Java-Themen 14
S Methoden Unerwarteter Methodenaufruf Allgemeine Java-Themen 5
T Polymorphie Statischer Methodenaufruf einer Kindsklasse Allgemeine Java-Themen 4
D Vererbung, Reflection und automatischer Methodenaufruf Allgemeine Java-Themen 24
R Java Parameterabfrage bei Methodenaufruf Allgemeine Java-Themen 4
MQue Performance Methodenaufruf - if Abfrage Allgemeine Java-Themen 19
B Problem mit Methodenaufruf in Konstruktor Allgemeine Java-Themen 6
S Bekomme nullwerte bei methodenaufruf in versch. Klassen Allgemeine Java-Themen 16
W Sequentieller Methodenaufruf -> UML Allgemeine Java-Themen 10
G [Reflection + WebService] Methodenaufruf an einem Proxy Allgemeine Java-Themen 11
S Methodenaufruf per String? Allgemeine Java-Themen 4
G Fehler bei Methodenaufruf Allgemeine Java-Themen 30
P Methodenaufruf von catch Allgemeine Java-Themen 2
MQue Methodenaufruf auf der Insel Allgemeine Java-Themen 4
MQue Methodenaufruf von wem? Allgemeine Java-Themen 11
egrath Zu langsamer Methodenaufruf Allgemeine Java-Themen 4
N Methodenaufruf wiederholbar machen? Allgemeine Java-Themen 2
H Methodenaufruf Allgemeine Java-Themen 5
D Probleme mit Methodenaufruf von Klasse in dll (jni) Allgemeine Java-Themen 19
M Vergleich im geordeten Vector und Methodenaufruf Allgemeine Java-Themen 2
byte Methodenaufruf per Reflection? Allgemeine Java-Themen 2
B Methodenaufruf Allgemeine Java-Themen 6
S Methodenaufruf Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben