Kommentieren der GUI - Klasse beendet

master
Lenz Wiechers 2020-02-17 16:18:54 +01:00
parent 5059220f31
commit cb61ed7ff4
24 changed files with 91 additions and 41 deletions

15
.classpath Normal file
View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Users/lenzw/OneDrive/Dokumente/Programmier Projekte/mysql-connector-java-5.0.8/mysql-connector-java-5.0.8-bin.jar">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>

17
.project Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>PongMitDatenbank</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

1
bin/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/package1/

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/module-info.class Normal file

Binary file not shown.

5
src/module-info.java Normal file
View File

@ -0,0 +1,5 @@
module PongMitDatenbank {
requires java.desktop;
requires java.sql;
requires mysql.connector.java;
}

View File

@ -1,3 +1,4 @@
package package1;
public class Ball extends Picture { public class Ball extends Picture {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -1,3 +1,4 @@
package package1;
// Imports: // Imports:
import java.awt.event.ActionEvent; 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 JPanel panel; // Auf dem Panel werden alle GUI - Elemente gespeichert
JTextField eingabe; // Eingabefeld für Namen des Spielers 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 // Ein Button, der wenn er gedrückt wird, die Daten in die Datenbank einfügen
// soll // soll:
JButton enter;
JLabel info; // Ein JLabel auf dem ein kurzer Info - Text abgebildet wird 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 // 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 public GUI(int score) throws SQLException { // Erstellen des Konstruktors mit der Eingabe score
// Initialisieren der Datenbank // Initialisieren der Datenbank
// datenbank = new MySQLConnector("LenzundTilman", "Xc37zTVG8", "10.16.225.2", datenbank = new MySQLConnector("LenzundTilman", "Xc37zTVG8", "10.16.225.2", "pong");
// "pong");
this.score = score; // score wird initialisiert mit dem Wert des erreichten Scores (Kontakte des this.score = score; // score wird initialisiert mit dem Wert des erreichten Scores (Kontakte des
// Spielers mit dem Ball) // Spielers mit dem Ball)
// datenbank.connect(); // Herstellen der Verbindung zur Datenbank: datenbank.connect(); // Herstellen der Verbindung zur Datenbank:
// spielNr = datenbank.getRowCount("highscore") + 1; // Errechnung der aktuellen spielNr = datenbank.getRowCount("highscore") + 1; // Errechnung der aktuellen Spielnummer
// Spielnummer
// Initialisieren der GUI - Elemente: // Initialisieren der GUI - Elemente:
panel = new JPanel(); panel = new JPanel();
@ -57,19 +57,22 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
enter = new JButton("Enter"); enter = new JButton("Enter");
info = new JLabel("Congrats! You achieved a Score of " + score + "! Please enter a name!"); info = new JLabel("Congrats! You achieved a Score of " + score + "! Please enter a name!");
spielNr = 1000;
// Initialisieren des Frames: // Initialisieren des Frames:
this.setBounds(300, 300, 370, 400); // Setzen der Position auf dem Monito und der Größe this.setBounds(300, 300, 370, 400); // Setzen der Position auf dem Monito und der Größe
this.setVisible(true); // Sichtbarkeit des Frames this.setVisible(true); // Sichtbarkeit des Frames
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Progamm wird geschlossen wenn das Fenster // Progamm wird geschlossen wenn das Fenster geschlossen wird:
// geschlossen wird this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Game " + spielNr); // Der Titel des Frames wird gesetzt. this.setTitle("Game " + spielNr); // Der Titel des Frames wird gesetzt.
// Der Inhallt des Panels wird auf den Frame projeziert:
this.setContentPane(panel); this.setContentPane(panel);
this.getContentPane(); this.getContentPane();
this.setResizable(false); // Festergrösse ist unveränderlich this.setResizable(false); // Festergrösse ist unveränderlich
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Progamm wird geschlossen wenn das Fenster geschlossen // Progamm wird geschlossen wenn das Fenster geschlossen wird:
// wird this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setLayout(null); // kein Layout
this.getContentPane().setLayout(null); // Layout wird ermöglicht
scores = new JLabel[11]; scores = new JLabel[11];
names = new JLabel[11]; names = new JLabel[11];
@ -89,21 +92,17 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
gameNr[0].setBounds(0, 120, 150, 20); gameNr[0].setBounds(0, 120, 150, 20);
// Anfrage an die Datenbank wird gestellt: // 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: // Erstellen der Top 10 Liste:
for (int i = 1; i < scores.length; i++) { for (int i = 1; i < scores.length; i++) {
try { try {
// rs.next(); // Auslesen der nächsten Zeile rs.next(); // Auslesen der nächsten Zeile
// Setzen der Labels mit den jeweiligen Inhalten: // Setzen der Labels mit den jeweiligen Inhalten:
// scores[i] = new JLabel(Integer.toString(rs.getInt("Score"))); scores[i] = new JLabel(Integer.toString(rs.getInt("Score")));
// names[i] = new JLabel(rs.getString("Name")); names[i] = new JLabel(rs.getString("Name"));
// gameNr[i] = new JLabel(Integer.toString(rs.getInt("SpielNr"))); 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].setBounds(300, 120 + i * 20, 150, 20); // 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 names[i].setBounds(150, 120 + i * 20, 150, 20); // Poition(und Grösse) des Panels der Top Scores
@ -116,8 +115,8 @@ public class GUI extends JFrame { // extends JFrame --> Jede 'GUI' ist auch ein
System.out.println(i); System.out.println(i);
} catch (Exception e) { } catch (Exception e) { // Falls etwas schief läuft
System.out.println("Fehler: " + 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(eingabe);
panel.add(enter); panel.add(enter);
// Setzen der Positionen und Größen von 'eingabe', 'enter', und 'info' // Setzen der Positionen und Größen von 'eingabe', 'enter', und 'info'
eingabe.setBounds(50, 50, 250, 20); eingabe.setBounds(50, 50, 250, 20);
enter.setBounds(50, 80, 100, 30); 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 // Was passieren soll, wenn der Button gedrückt wird
// gedrückt wird public void button_ActionPerformed(ActionEvent evt) throws SQLException {
//datenbank.updateDatabase("INSERT INTO `highscore` (`Score`, `Name`, `SpielNr`) VALUES ('" + score + "', '" datenbank.updateDatabase("INSERT INTO `highscore` (`Score`, `Name`,`SpielNr`) VALUES ('" + score + "', '"
// + eingabe.getText() + "','" + spielNr + "')"); // Einfügen der Daten in die Datenbank + eingabe.getText() + "','" + spielNr + "')"); // Einfügen der Daten in die Datenbank
this.dispose(); // Der Frame wird geschlossen this.dispose(); // Der Frame wird geschlossen
//datenbank.disconnect(); // Die Verbindung zur Datenbank wird getrennt datenbank.disconnect(); // Die Verbindung zur Datenbank wird getrennt
} }
} }

View File

@ -1,3 +1,5 @@
package package1;
import java.awt.Color; import java.awt.Color;
import java.awt.Font; import java.awt.Font;
import java.sql.SQLException; import java.sql.SQLException;
@ -84,7 +86,7 @@ public class Game {
player.setBounds(player.getPosi('x', 0), player.getPosi('y', 0), 10, 100); player.setBounds(player.getPosi('x', 0), player.getPosi('y', 0), 10, 100);
//delay(3000); //delay(3000);
lastT = System.nanoTime(); lastT = System.nanoTime();
while (lives < 0) { while (lives > 0) {
dt = System.nanoTime() - lastT; dt = System.nanoTime() - lastT;
lastT = System.nanoTime(); lastT = System.nanoTime();
@ -124,6 +126,7 @@ public class Game {
} }
frame.dispose(); frame.dispose();
@SuppressWarnings("unused")
GUI Gui = new GUI(score); GUI Gui = new GUI(score);
} }

View File

@ -1,3 +1,4 @@
package package1;
public class Lives extends Picture{ public class Lives extends Picture{
public Lives() { public Lives() {

View File

@ -1,3 +1,4 @@
package package1;
import java.sql.SQLException; import java.sql.SQLException;
public class Main { public class Main {
@ -6,7 +7,6 @@ public class Main {
public static void main(String[] args) throws SQLException { public static void main(String[] args) throws SQLException {
// System.out.println("test");
System.setProperty("sun.java2d.opengl", "true"); System.setProperty("sun.java2d.opengl", "true");
Game Game = new Game(); Game Game = new Game();

View File

@ -1,15 +1,19 @@
package package1;
import java.sql.Connection; import java.sql.Connection;
import java.sql.Statement; import java.sql.Statement;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.ResultSet; import java.sql.ResultSet;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
// Diese Klasse ist für die Verbindung zur Datenbank
public class MySQLConnector { public class MySQLConnector {
private MysqlDataSource ds; private MysqlDataSource ds;
private Connection conn; private Connection conn;
private Statement s; private Statement s;
// Erstellen des Konstruktors mit den richtigen Daten:
public MySQLConnector(String user, String pw, String server, String db) { public MySQLConnector(String user, String pw, String server, String db) {
ds = new MysqlDataSource(); ds = new MysqlDataSource();
ds.setUser(user); ds.setUser(user);
@ -18,26 +22,29 @@ public class MySQLConnector {
ds.setDatabaseName(db); ds.setDatabaseName(db);
} }
public void connect() throws SQLException { public void connect() throws SQLException { // Methode, die die Verbindung zur Datenbank herstellt
conn = ds.getConnection(); conn = ds.getConnection();
} }
public void disconnect() throws SQLException { public void disconnect() throws SQLException { // Methode, die die Verbindung zur Datenbank auflöst
s.close(); s.close();
conn.close(); conn.close();
} }
// Methode, die den eingegebenen SQL Befehl auf die Datenbank anwendet:
public ResultSet executeQuery(String query) throws SQLException { public ResultSet executeQuery(String query) throws SQLException {
s = conn.createStatement(); s = conn.createStatement();
ResultSet rs = s.executeQuery(query); ResultSet rs = s.executeQuery(query);
return rs; return rs;
} }
// Methode, das einen neuen Datensatz in die Datenbank einfügt:
public void updateDatabase(String whatever) throws SQLException { public void updateDatabase(String whatever) throws SQLException {
s = conn.createStatement(); s = conn.createStatement();
s.executeUpdate(whatever); s.executeUpdate(whatever);
} }
// Methode, die die Anzahl der Datensätze der Tabelle zurückgibt:
public int getRowCount(String table) throws SQLException { public int getRowCount(String table) throws SQLException {
s = conn.createStatement(); s = conn.createStatement();
ResultSet rs = s.executeQuery("Select * From " + table); ResultSet rs = s.executeQuery("Select * From " + table);

View File

@ -1,3 +1,4 @@
package package1;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;

View File

@ -1,3 +1,4 @@
package package1;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.awt.event.KeyListener; import java.awt.event.KeyListener;

View File

@ -1,3 +1,4 @@
package package1;
public class Wall extends Picture { public class Wall extends Picture {
private int pos = 0; private int pos = 0;