F
fxkk
Gast
Hallo Leute,
ich muss für ein Hochschul-Projekt eine GUI für eine Fußballwertetabelle schreiben, habe eigentlich alles bis zum GUI erledigt und mir fehlt noch dieser entscheidende Teil.
Wie kann ich meine Klasse in GUI einbinden?
Ich muss folgendes implementieren:
1. Neue Tab: Löscht die vorher evtl. geöffnete Tabelle und fängt mit einem neuen
Tabellenobjekt an.
2. Reset Tab: Löscht die Ergebnisse behält jedoch die Vereine bei
3. Lade Tab: Lädt eine Tabelle aus einer Datei.
4. Sichere Tab: Speichert die Tabelle in eine Datei.
5. Neuer Verein: Öffnet einen Dialog mit dem ein neuer Verein in der Tabelle eingetragen
werden kann.
6. Lösche Verein: Öffnet einen Dialog mit dem ein Verein ausgewählt wird, der dann gelöscht
wird (Zwischenfrage: Sind Sie sicher, dass Sie Verein … löschen möchten).
7. Neues Spielergebnis: Öffnet einen Dialog mit dem man zwei Vereine aus den vorhandenen
auswählen kann (Vorsicht: Ein Verein kann nur einmal ausgewählt werden) und dann die
jeweiligen Tore
Tabelle Klasse:
Verein Klasse
GUI
ich muss für ein Hochschul-Projekt eine GUI für eine Fußballwertetabelle schreiben, habe eigentlich alles bis zum GUI erledigt und mir fehlt noch dieser entscheidende Teil.
Wie kann ich meine Klasse in GUI einbinden?
Ich muss folgendes implementieren:
1. Neue Tab: Löscht die vorher evtl. geöffnete Tabelle und fängt mit einem neuen
Tabellenobjekt an.
2. Reset Tab: Löscht die Ergebnisse behält jedoch die Vereine bei
3. Lade Tab: Lädt eine Tabelle aus einer Datei.
4. Sichere Tab: Speichert die Tabelle in eine Datei.
5. Neuer Verein: Öffnet einen Dialog mit dem ein neuer Verein in der Tabelle eingetragen
werden kann.
6. Lösche Verein: Öffnet einen Dialog mit dem ein Verein ausgewählt wird, der dann gelöscht
wird (Zwischenfrage: Sind Sie sicher, dass Sie Verein … löschen möchten).
7. Neues Spielergebnis: Öffnet einen Dialog mit dem man zwei Vereine aus den vorhandenen
auswählen kann (Vorsicht: Ein Verein kann nur einmal ausgewählt werden) und dann die
jeweiligen Tore
Tabelle Klasse:
Java:
public class Tabelle {
private static Verein [] vereinArray = new Verein[0];
public void add(Verein ver){
if (vereinArray.length < 18){
Verein [] tempArray = new Verein[vereinArray.length+1];
for(int i = 0; i < vereinArray.length; i++){
tempArray[i] = vereinArray[i];
}
tempArray[tempArray.length-1] = ver;
vereinArray = tempArray;
}
}
public int find(Verein searchedVer){
for(int i = 0; i < vereinArray.length; i++){
if(vereinArray[i].equals(searchedVer)){
System.out.println("Der Verein -> " + searchedVer.getName() +" <- befindet/befand sich auf dem " + (i+1) + ". Platz");
return i;
}
}
System.out.println("Der gesuchte Verein wurde nicht gefunden !");
return -1;
}
int compareTo(Verein v1, Verein v2){
int punktevergleich1 = v1.get_punkte();
int punktevergleich2 = v2.get_punkte();
int tordifferenzvergleich1 = v1.get_tordifferenz();
int tordifferenzvergleich2 = v2.get_tordifferenz();
int eigenetorevergleich1 = v1.get_anzahlEigenerTore();
int eigenetorevergleich2 = v2.get_anzahlEigenerTore();
if (punktevergleich1 > punktevergleich2){
return -1;
}
else if (punktevergleich1 < punktevergleich2){
return 1;
}
else if(punktevergleich1 == punktevergleich2){
if(tordifferenzvergleich1 > tordifferenzvergleich2){
return -1;
}
else if(tordifferenzvergleich1 < tordifferenzvergleich2){
return 1;
}
else if(tordifferenzvergleich1 == tordifferenzvergleich2){
if(eigenetorevergleich1 > eigenetorevergleich2){
return -1;
}
else if(eigenetorevergleich1 < eigenetorevergleich2){
return 1;
}
else if (eigenetorevergleich1 == eigenetorevergleich2){
return 0;
}
}
}
return 0;
}
void sort(Verein [] vereinArray){
for (int x = 1; x < vereinArray.length; x++) {
for (int y = vereinArray.length-1; y >= x; y--) {
int compare = compareTo(vereinArray[y], vereinArray[y-1]);
if (compare < 0 ) {
Verein temp = vereinArray[y-1];
vereinArray[y-1] = vereinArray[y];
vereinArray[y] = temp;
}
}
}
}
public boolean remove(Verein ver){
Verein [] tempArray = new Verein[vereinArray.length-1];
int counter = 0;
int foundValue = find(ver);
if(foundValue < 0){
return false;
}
for(int i=0; i<vereinArray.length;i++){
if(foundValue != i){
tempArray[counter] = vereinArray[i];
counter++;
}
}
vereinArray = tempArray;
System.out.println("-> "+ver.getName()+" <- wurde entfernt");
return true;
}
public void reset(){
for(int i=0;i<vereinArray.length;i++){
vereinArray[i] = new Verein(vereinArray[i].getName(),0,0,0,0,0);
}
}
public boolean spieltag(Verein ver1, Verein ver2,int eigenetorevergleich1, int eigenetorevergleich2){
if(ver1.equals(ver2)){
System.out.println("Fehler! : Übergebene Vereine sind identisch !");
return false;
}
if(eigenetorevergleich1 > eigenetorevergleich2){
ver1.set_punkte(3);
}
else if(eigenetorevergleich1 < eigenetorevergleich2){
ver2.set_punkte(3);
}
else if(eigenetorevergleich1 == eigenetorevergleich2){
ver1.set_punkte(1);
ver2.set_punkte(1);
}
ver1.set_anzahlEigenerTore(eigenetorevergleich1);
ver2.set_anzahlEigenerTore(eigenetorevergleich2);
ver2.set_anzahlGegenTore(eigenetorevergleich1);
ver1.set_anzahlGegenTore(eigenetorevergleich2);
ver1.set_anzahlGemachterSpiele();
ver2.set_anzahlGemachterSpiele();
sort(vereinArray);
return true;
}
public void ausgabe(){
for(int i=0;i<vereinArray.length;i++){
System.out.println(vereinArray[i].getName()+": "+vereinArray[i].get_anzahlGemachterSpiele()
+","+vereinArray[i].get_punkte()+","+vereinArray[i].get_anzahlEigenerTore()
+","+vereinArray[i].get_anzahlGegenTore()+","+vereinArray[i].get_tordifferenz());
}
}
public static void main (String[]args){
Tabelle t = new Tabelle();
Verein v1 = new Verein("FC Barcelona",0,0,0,0,0);
t.add(v1);
Verein v2 = new Verein("Real Madrid CF",0,0,0,0,0);
t.add(v2);
Verein v3 = new Verein("FC Bayern Muenchen",0,0,0,0,0);
t.add(v3);
Verein v4 = new Verein("Chelsea FC",0,0,0,0,0);
t.add(v4);
Verein v5 = new Verein("Manchester United ",0,0,0,0,0);
t.add(v5);
Verein v6 = new Verein("Kickers Offenbach ",0,0,0,0,0);
t.add(v6);
t.spieltag(v1, v2, 1, 0);
t.spieltag(v3, v4, 2, 0);
t.spieltag(v5, v6, 3, 0);
//t.reset();
t.ausgabe();
}
}
Verein Klasse
Java:
package _package;
public class Verein {
String name;
int _anzahlGemachterSpiele;
int _punkte;
int _anzahlEigenerTore;
int _anzahlGegenTore;
int _tordifferenz = (_anzahlEigenerTore - _anzahlGegenTore);
public Verein(String name, int anzahlGemachterSpiele, int punkte, int anzahlEigenerTore, int anzahlGegenTore, int tordifferenz){
this.name = name;
this._anzahlGemachterSpiele = anzahlGemachterSpiele;
this._punkte = punkte;
this._anzahlEigenerTore = anzahlEigenerTore;
this._anzahlGegenTore = anzahlGegenTore;
this._tordifferenz = tordifferenz;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int get_anzahlGemachterSpiele() {
return _anzahlGemachterSpiele;
}
public void set_anzahlGemachterSpiele() {
this._anzahlGemachterSpiele = _anzahlGemachterSpiele+1;
}
public int get_punkte() {
return _punkte;
}
public void set_punkte(int _punkte) {
this._punkte = _punkte;
}
public int get_anzahlEigenerTore() {
return _anzahlEigenerTore;
}
public void set_anzahlEigenerTore(int _anzahlEigenerTore) {
this._anzahlEigenerTore = _anzahlEigenerTore;
}
public int get_anzahlGegenTore() {
return _anzahlGegenTore;
}
public void set_anzahlGegenTore(int _anzahlGegenTore) {
this._anzahlGegenTore = _anzahlGegenTore;
}
public int get_tordifferenz() {
return _anzahlEigenerTore - _anzahlGegenTore;
}
public void set_tordifferenz() {
this._tordifferenz = _anzahlEigenerTore - _anzahlGegenTore;
}
}
GUI
Java:
package _package;
import java.awt.GridLayout;
import javax.swing.*;
public class Optik extends JFrame {
JButton neueTab; //Neue Tab: Löscht die vorher evtl. geöffnete Tabelle und fängt mit einem neuen Tabellenobjekt an
JButton resetTab; //Reset Tab: Löscht die Ergebnisse behält jedoch die Vereine bei
JButton loadTab; //Lade Tab: Lädt eine Tabelle aus einer Datei.
JButton saveTab; //Sichere Tab: Speichert die Tabelle in eine Datei.
JButton neuerVerein; //Neuer Verein: Öffnet einen Dialog mit dem ein neuer Verein in der Tabelle eingetragen werden kann.
JButton loescheVerein; //Lösche Verein: Öffnet einen Dialog mit dem ein Verein ausgewählt wird, der dann gelöscht wird (Zwischenfrage: Sind Sie sicher, dass Sie Verein … löschen möchten).
JButton neuesSpiel; //Neues Spielergebnis: Öffnet einen Dialog mit dem man zwei Vereine aus den vorhandenen auswählen kann (Vorsicht: Ein Verein kann nur einmal ausgewählt werden) und dann die jeweiligen Tore
JLabel tabLabel; //Label für die Tabelle
JPanel panel;
public Optik(){
//Frame settings
this.setTitle("Fußball Tabelle"); // Titel des Hauptfensters
this.setSize(910, 500); // Größe des Hauptfensters
this.setDefaultCloseOperation(EXIT_ON_CLOSE); // schließt Fenster beim [ X ] klicken
//this.pack(); // "zurechtpacken" der Elemente
this.setVisible(true); // Sichtbarkeit des Frame
this.setLocationRelativeTo(null); // öffnet Frame in der Mitte des Bildschirms
this.setResizable(false);
//Neue Tabelle Button
neueTab = new JButton("Neue Tabelle");
//Reset Tabelle Button
resetTab = new JButton("Reset Tabelle");
//Load Tabelle Button
loadTab = new JButton("Lade Tabelle");
//Save Tabelle Button
saveTab = new JButton("Tabelle speichern");
//Neue Tabelle Button
neuerVerein = new JButton("Verein hinzufügen");
//Lösche Verein Button
loescheVerein = new JButton("Verein löschen");
//Neues Spiel Button
neuesSpiel = new JButton("Neues Spielereignis");
//Label für die Tabelle
tabLabel = new JLabel("T E S T");
//Panel settings
panel = new JPanel();
add(panel, java.awt.BorderLayout.CENTER);
add(tabLabel, java.awt.BorderLayout.SOUTH);
panel.add(neueTab);
panel.add(resetTab);
panel.add(loadTab);
panel.add(saveTab);
panel.add(neuerVerein);
panel.add(loescheVerein);
panel.add(neuesSpiel);
panel.add(tabLabel);
}
public static void main(String[]args){
new Optik();
}
}
Zuletzt bearbeitet von einem Moderator: