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 {
private static final long serialVersionUID = 1L;

View File

@ -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
}
}

View File

@ -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);
}

View File

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

View File

@ -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();

View File

@ -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();

View File

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

View File

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

View File

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