Hallo Leute,
ich habe heute einmal angefangen zu versuchen einen Vokabeltrainer zu schreiben.
Dabei habe ich auf mehrere Klassen in einer gesetzt...
Ich habe in einer oberen Klasse, welche die Hauptklasse darstellt erst einmal die innere Struktur erstellt
und in einer unteren Klasse die grafischen Elemente erstellt.
Diese untere Klasse, welche die Grafikelemente beinhaltet ist jedoch innerhalb der Hauptklasse eingeschlossen. Also der oberen Klasse.
Ich rufe also in der main in der oberen Klasse, den Konstruktor der Grafikklasse auf welcher in einer anderen Klasse, aber innerhalb der Hauptklasse steht.
Hat einer von euch eine Idee weshalb das Programm nicht starten möchte?
Sollte ich evtl. die untere Klasse komplett in eine neue Klasse schreiben? (neue Klasse erstellen)
Oder hat jemand einen anderen Tipp?
Ich möchte das Programm erst einmal recht einfach halten bis es funktioniert und anschließend weiter ausbauen...
Falls ihr den Code sehen möchtet:
[/code]
Hat jemand einen Vorschlag? Sollte ich alles auslagern? oder bedarf es vlt. auch nur einer kleinen Änderung?
Für Tipps wäre ich dankbar.
Lg
ich habe heute einmal angefangen zu versuchen einen Vokabeltrainer zu schreiben.
Dabei habe ich auf mehrere Klassen in einer gesetzt...
Ich habe in einer oberen Klasse, welche die Hauptklasse darstellt erst einmal die innere Struktur erstellt
und in einer unteren Klasse die grafischen Elemente erstellt.
Diese untere Klasse, welche die Grafikelemente beinhaltet ist jedoch innerhalb der Hauptklasse eingeschlossen. Also der oberen Klasse.
Ich rufe also in der main in der oberen Klasse, den Konstruktor der Grafikklasse auf welcher in einer anderen Klasse, aber innerhalb der Hauptklasse steht.
Hat einer von euch eine Idee weshalb das Programm nicht starten möchte?
Sollte ich evtl. die untere Klasse komplett in eine neue Klasse schreiben? (neue Klasse erstellen)
Oder hat jemand einen anderen Tipp?
Ich möchte das Programm erst einmal recht einfach halten bis es funktioniert und anschließend weiter ausbauen...
Falls ihr den Code sehen möchtet:
Java:
[code]
import java.awt.Container;
import java.awt.GridLayout;
import java.util.Random;
import javax.print.attribute.standard.DateTimeAtCreation;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Vokabeltrainer1
{
Vokabel vok[]=new Vokabel[3];
Vokabel aktuelleVok;
Random rd=new Random();
class Vokabel
{ //Die Variablen werden deklariert
String deutschesWort;
String englischesWort;
int zahlKorrekterAbfragen;
int zahlFalscherAbfragen;
DateTimeAtCreation letzteAbfrage;
//Konstruktor
public Vokabel(String deutschesWort, String englischesWort)
{
this.deutschesWort=deutschesWort;
this.englischesWort=englischesWort;
}
}
public Vokabeltrainer1()
{ //Dem Konstruktor Vokabeltrainer welcher eine Ebene höher liegt übergebe ich die erstellten Vokabeln + die aktuelle Vokabel die angezeigt werden soll
vok[0]=new Vokabel("Familie","family");
vok[1]=new Vokabel("Bruder","brother");
vok[2]=new Vokabel("Schwester","sister");
aktuelleVok=vok[0];
//Vokabeltrainer_bedienen.this.abfrage.setText(""+aktuelleVok);
}
public static void main(String [] args)
{
new Vokabeltrainer_bedienen();
//Vokabeltrainer_bedienen.this.abfrage.setText(""+Vokabel.class.getEnclosingMethod(aktuelleVok));
}
class Vokabeltrainer_bedienen extends JFrame
{ //in der oberen Klasse welche diese miteinschließt habe ich sozusagen die inneren Strukturen festgelegt
//in dieser Klasse baue ich nur das Grafikgerüst auf um dann anschließend in der main der oberen Klasse den Konstruktor der unteren Grafik-
//klasse aufzurufen. es ist etwas durcheinander, aber die Hauptklasse ist die public Vokabeltrainer1, welche nur eben im KOnstruktor nicht aufgerufen wird
//Hat jemand von euch einen Vorschlag zur Verbesserung?
JLabel abfrage;
JButton pruefe;
JTextField eingabe;
Container c;
private static final long serialVersionUID = 1L;
public Vokabeltrainer_bedienen()
{
c=getContentPane();
setTitle("Vokabeltrainer");
setLayout(new GridLayout(3,1));
setSize(300,400);
setLocation(200,200);
abfrage=new JLabel("---");
c.add(abfrage);
eingabe=new JTextField(10);
c.add(eingabe);
pruefe=new JButton("pruefen!");
c.add(pruefe);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
}
Hat jemand einen Vorschlag? Sollte ich alles auslagern? oder bedarf es vlt. auch nur einer kleinen Änderung?
Für Tipps wäre ich dankbar.
Lg