diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..04f614e
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.project b/.project
new file mode 100644
index 0000000..59c9252
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+
+
+ PongMitDatenbank
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/bin/.gitignore b/bin/.gitignore
new file mode 100644
index 0000000..2ecad0a
--- /dev/null
+++ b/bin/.gitignore
@@ -0,0 +1 @@
+/package1/
diff --git a/bin/Ball.class b/bin/Ball.class
deleted file mode 100644
index b11a698..0000000
Binary files a/bin/Ball.class and /dev/null differ
diff --git a/bin/GUI$1.class b/bin/GUI$1.class
deleted file mode 100644
index f948e35..0000000
Binary files a/bin/GUI$1.class and /dev/null differ
diff --git a/bin/GUI.class b/bin/GUI.class
deleted file mode 100644
index f8d3ff4..0000000
Binary files a/bin/GUI.class and /dev/null differ
diff --git a/bin/Game.class b/bin/Game.class
deleted file mode 100644
index 3f21c04..0000000
Binary files a/bin/Game.class and /dev/null differ
diff --git a/bin/Lives.class b/bin/Lives.class
deleted file mode 100644
index af1d4f0..0000000
Binary files a/bin/Lives.class and /dev/null differ
diff --git a/bin/Main.class b/bin/Main.class
deleted file mode 100644
index d3120b3..0000000
Binary files a/bin/Main.class and /dev/null differ
diff --git a/bin/MySQLConnector.class b/bin/MySQLConnector.class
deleted file mode 100644
index fc2885d..0000000
Binary files a/bin/MySQLConnector.class and /dev/null differ
diff --git a/bin/Picture.class b/bin/Picture.class
deleted file mode 100644
index 33b4fa0..0000000
Binary files a/bin/Picture.class and /dev/null differ
diff --git a/bin/Player.class b/bin/Player.class
deleted file mode 100644
index 9b4f54e..0000000
Binary files a/bin/Player.class and /dev/null differ
diff --git a/bin/Wall.class b/bin/Wall.class
deleted file mode 100644
index f6bcd36..0000000
Binary files a/bin/Wall.class and /dev/null differ
diff --git a/bin/module-info.class b/bin/module-info.class
new file mode 100644
index 0000000..0b6889d
Binary files /dev/null and b/bin/module-info.class differ
diff --git a/src/module-info.java b/src/module-info.java
new file mode 100644
index 0000000..3688c83
--- /dev/null
+++ b/src/module-info.java
@@ -0,0 +1,5 @@
+module PongMitDatenbank {
+ requires java.desktop;
+ requires java.sql;
+ requires mysql.connector.java;
+}
\ No newline at end of file
diff --git a/src/Ball.java b/src/package1/Ball.java
similarity index 98%
rename from src/Ball.java
rename to src/package1/Ball.java
index f35659f..087ebd5 100644
--- a/src/Ball.java
+++ b/src/package1/Ball.java
@@ -1,3 +1,4 @@
+package package1;
public class Ball extends Picture {
private static final long serialVersionUID = 1L;
diff --git a/src/GUI.java b/src/package1/GUI.java
similarity index 71%
rename from src/GUI.java
rename to src/package1/GUI.java
index 8af8d5e..a515989 100644
--- a/src/GUI.java
+++ b/src/package1/GUI.java
@@ -1,3 +1,4 @@
+package package1;
// Imports:
import java.awt.event.ActionEvent;
@@ -24,8 +25,9 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
JPanel panel; // Auf dem Panel werden alle GUI - Elemente gespeichert
JTextField eingabe; // Eingabefeld für Namen des Spielers
- JButton enter; // Ein Button, der wenn er gedrückt wird, die Daten in die Datenbank einfügen
- // soll
+ // Ein Button, der wenn er gedrückt wird, die Daten in die Datenbank einfügen
+ // soll:
+ JButton enter;
JLabel info; // Ein JLabel auf dem ein kurzer Info - Text abgebildet wird
// Die folgenden JLabel werden für die Bestenliste benötigt, welche unter den
@@ -41,15 +43,13 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
public GUI(int score) throws SQLException { // Erstellen des Konstruktors mit der Eingabe score
// Initialisieren der Datenbank
- // datenbank = new MySQLConnector("LenzundTilman", "Xc37zTVG8", "10.16.225.2",
- // "pong");
+ datenbank = new MySQLConnector("LenzundTilman", "Xc37zTVG8", "10.16.225.2", "pong");
this.score = score; // score wird initialisiert mit dem Wert des erreichten Scores (Kontakte des
// Spielers mit dem Ball)
- // datenbank.connect(); // Herstellen der Verbindung zur Datenbank:
- // spielNr = datenbank.getRowCount("highscore") + 1; // Errechnung der aktuellen
- // Spielnummer
+ datenbank.connect(); // Herstellen der Verbindung zur Datenbank:
+ spielNr = datenbank.getRowCount("highscore") + 1; // Errechnung der aktuellen Spielnummer
// Initialisieren der GUI - Elemente:
panel = new JPanel();
@@ -57,19 +57,22 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
enter = new JButton("Enter");
info = new JLabel("Congrats! You achieved a Score of " + score + "! Please enter a name!");
- spielNr = 1000;
// Initialisieren des Frames:
this.setBounds(300, 300, 370, 400); // Setzen der Position auf dem Monito und der Größe
this.setVisible(true); // Sichtbarkeit des Frames
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Progamm wird geschlossen wenn das Fenster
- // geschlossen wird
+ // Progamm wird geschlossen wenn das Fenster geschlossen wird:
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
this.setTitle("Game " + spielNr); // Der Titel des Frames wird gesetzt.
+ // Der Inhallt des Panels wird auf den Frame projeziert:
this.setContentPane(panel);
this.getContentPane();
+
this.setResizable(false); // Festergrösse ist unveränderlich
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Progamm wird geschlossen wenn das Fenster geschlossen
- // wird
- this.getContentPane().setLayout(null); // kein Layout
+ // Progamm wird geschlossen wenn das Fenster geschlossen wird:
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+ this.getContentPane().setLayout(null); // Layout wird ermöglicht
scores = new JLabel[11];
names = new JLabel[11];
@@ -79,7 +82,7 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
scores[0] = new JLabel("Score");
names[0] = new JLabel("Name");
gameNr[0] = new JLabel("Game No.");
-
+
panel.add(scores[0]);
panel.add(names[0]);
panel.add(gameNr[0]);
@@ -89,21 +92,17 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
gameNr[0].setBounds(0, 120, 150, 20);
// Anfrage an die Datenbank wird gestellt:
- // rs = datenbank.executeQuery("SELECT * FROM highscore ORDER BY Score DESC");
+ rs = datenbank.executeQuery("SELECT * FROM highscore ORDER BY Score DESC");
// Erstellen der Top 10 Liste:
for (int i = 1; i < scores.length; i++) {
try {
- // rs.next(); // Auslesen der nächsten Zeile
+ rs.next(); // Auslesen der nächsten Zeile
// Setzen der Labels mit den jeweiligen Inhalten:
- // scores[i] = new JLabel(Integer.toString(rs.getInt("Score")));
- // names[i] = new JLabel(rs.getString("Name"));
- // gameNr[i] = new JLabel(Integer.toString(rs.getInt("SpielNr")));
-
- scores[i] = new JLabel(Integer.toString(i));
- names[i] = new JLabel(Integer.toString(i));
- gameNr[i] = new JLabel(Integer.toString(i));
+ scores[i] = new JLabel(Integer.toString(rs.getInt("Score")));
+ names[i] = new JLabel(rs.getString("Name"));
+ gameNr[i] = new JLabel(Integer.toString(rs.getInt("SpielNr")));
scores[i].setBounds(300, 120 + i * 20, 150, 20); //
names[i].setBounds(150, 120 + i * 20, 150, 20); // Poition(und Grösse) des Panels der Top Scores
@@ -113,11 +112,11 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
panel.add(scores[i]);
panel.add(names[i]);
panel.add(gameNr[i]);
-
+
System.out.println(i);
- } catch (Exception e) {
- System.out.println("Fehler: " + e); // Falls etwas schief läuft
+ } catch (Exception e) { // Falls etwas schief läuft
+ System.out.println("Fehler: " + e);
}
}
@@ -126,8 +125,6 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
panel.add(eingabe);
panel.add(enter);
-
-
// Setzen der Positionen und Größen von 'eingabe', 'enter', und 'info'
eingabe.setBounds(50, 50, 250, 20);
enter.setBounds(50, 80, 100, 30);
@@ -146,12 +143,12 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
}
- public void button_ActionPerformed(ActionEvent evt) throws SQLException { // Was passieren soll, wenn der Button
- // gedrückt wird
- //datenbank.updateDatabase("INSERT INTO `highscore` (`Score`, `Name`, `SpielNr`) VALUES ('" + score + "', '"
- // + eingabe.getText() + "','" + spielNr + "')"); // Einfügen der Daten in die Datenbank
+ // Was passieren soll, wenn der Button gedrückt wird
+ public void button_ActionPerformed(ActionEvent evt) throws SQLException {
+ datenbank.updateDatabase("INSERT INTO `highscore` (`Score`, `Name`,`SpielNr`) VALUES ('" + score + "', '"
+ + eingabe.getText() + "','" + spielNr + "')"); // Einfügen der Daten in die Datenbank
this.dispose(); // Der Frame wird geschlossen
- //datenbank.disconnect(); // Die Verbindung zur Datenbank wird getrennt
+ datenbank.disconnect(); // Die Verbindung zur Datenbank wird getrennt
}
}
diff --git a/src/Game.java b/src/package1/Game.java
similarity index 97%
rename from src/Game.java
rename to src/package1/Game.java
index 8a2e1c1..d1ca47b 100644
--- a/src/Game.java
+++ b/src/package1/Game.java
@@ -1,3 +1,5 @@
+package package1;
+
import java.awt.Color;
import java.awt.Font;
import java.sql.SQLException;
@@ -84,7 +86,7 @@ public class Game {
player.setBounds(player.getPosi('x', 0), player.getPosi('y', 0), 10, 100);
//delay(3000);
lastT = System.nanoTime();
- while (lives < 0) {
+ while (lives > 0) {
dt = System.nanoTime() - lastT;
lastT = System.nanoTime();
@@ -124,6 +126,7 @@ public class Game {
}
frame.dispose();
+ @SuppressWarnings("unused")
GUI Gui = new GUI(score);
}
diff --git a/src/Lives.java b/src/package1/Lives.java
similarity index 81%
rename from src/Lives.java
rename to src/package1/Lives.java
index 7ff395d..7db009e 100644
--- a/src/Lives.java
+++ b/src/package1/Lives.java
@@ -1,3 +1,4 @@
+package package1;
public class Lives extends Picture{
public Lives() {
diff --git a/src/Main.java b/src/package1/Main.java
similarity index 86%
rename from src/Main.java
rename to src/package1/Main.java
index 5a39a9e..57f5933 100644
--- a/src/Main.java
+++ b/src/package1/Main.java
@@ -1,3 +1,4 @@
+package package1;
import java.sql.SQLException;
public class Main {
@@ -6,7 +7,6 @@ public class Main {
public static void main(String[] args) throws SQLException {
- // System.out.println("test");
System.setProperty("sun.java2d.opengl", "true");
Game Game = new Game();
diff --git a/src/MySQLConnector.java b/src/package1/MySQLConnector.java
similarity index 61%
rename from src/MySQLConnector.java
rename to src/package1/MySQLConnector.java
index 29a9888..9057b6d 100644
--- a/src/MySQLConnector.java
+++ b/src/package1/MySQLConnector.java
@@ -1,15 +1,19 @@
+package package1;
+
import java.sql.Connection;
import java.sql.Statement;
import java.sql.SQLException;
import java.sql.ResultSet;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
+// Diese Klasse ist für die Verbindung zur Datenbank
public class MySQLConnector {
private MysqlDataSource ds;
private Connection conn;
private Statement s;
+ // Erstellen des Konstruktors mit den richtigen Daten:
public MySQLConnector(String user, String pw, String server, String db) {
ds = new MysqlDataSource();
ds.setUser(user);
@@ -18,27 +22,30 @@ public class MySQLConnector {
ds.setDatabaseName(db);
}
- public void connect() throws SQLException {
+ public void connect() throws SQLException { // Methode, die die Verbindung zur Datenbank herstellt
conn = ds.getConnection();
}
- public void disconnect() throws SQLException {
+ public void disconnect() throws SQLException { // Methode, die die Verbindung zur Datenbank auflöst
s.close();
conn.close();
}
+ // Methode, die den eingegebenen SQL Befehl auf die Datenbank anwendet:
public ResultSet executeQuery(String query) throws SQLException {
s = conn.createStatement();
ResultSet rs = s.executeQuery(query);
return rs;
}
-
- public void updateDatabase(String whatever) throws SQLException{
+
+ // Methode, das einen neuen Datensatz in die Datenbank einfügt:
+ public void updateDatabase(String whatever) throws SQLException {
s = conn.createStatement();
s.executeUpdate(whatever);
}
-
- public int getRowCount(String table) throws SQLException{
+
+ // Methode, die die Anzahl der Datensätze der Tabelle zurückgibt:
+ public int getRowCount(String table) throws SQLException {
s = conn.createStatement();
ResultSet rs = s.executeQuery("Select * From " + table);
rs.last();
diff --git a/src/Picture.java b/src/package1/Picture.java
similarity index 97%
rename from src/Picture.java
rename to src/package1/Picture.java
index fcd38b9..f083368 100644
--- a/src/Picture.java
+++ b/src/package1/Picture.java
@@ -1,3 +1,4 @@
+package package1;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
diff --git a/src/Player.java b/src/package1/Player.java
similarity index 99%
rename from src/Player.java
rename to src/package1/Player.java
index 9713dee..5a309d5 100644
--- a/src/Player.java
+++ b/src/package1/Player.java
@@ -1,3 +1,4 @@
+package package1;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
diff --git a/src/Wall.java b/src/package1/Wall.java
similarity index 97%
rename from src/Wall.java
rename to src/package1/Wall.java
index 098a200..614c5b6 100644
--- a/src/Wall.java
+++ b/src/package1/Wall.java
@@ -1,3 +1,4 @@
+package package1;
public class Wall extends Picture {
private int pos = 0;