Hallo zusammen,
ich programmiere momentan einen Vokabeltrainer mit Java.
Der Benutzer kann bis jetzt, mit Hilfe eines Textfeldes, Vokabeln eingeben und diese werden in der Datenbank gespeichert.
Nun hab ich 2 Probleme:
1. Bei Abfrage der Vokabeln aus der Datenbank, zeigt das Textfeld nur die zuletzt eingegebene Vokabel an. Wie schaff ich es, dass jeweils zufällig eine Vokabel aus der Datenbank angezeigt wird?
Und das ist die Hauptfrage:
2. Wie schaffe ich es, dass die aus der Datenbank entnommene englische Vokabel mit der im anderen Textfeld eingegebenen deutschen Vokabel verglichen wird?
Ich bin dankbar für jede Hilfe
Hier mein Code:
ich programmiere momentan einen Vokabeltrainer mit Java.
Der Benutzer kann bis jetzt, mit Hilfe eines Textfeldes, Vokabeln eingeben und diese werden in der Datenbank gespeichert.
Nun hab ich 2 Probleme:
1. Bei Abfrage der Vokabeln aus der Datenbank, zeigt das Textfeld nur die zuletzt eingegebene Vokabel an. Wie schaff ich es, dass jeweils zufällig eine Vokabel aus der Datenbank angezeigt wird?
Und das ist die Hauptfrage:
2. Wie schaffe ich es, dass die aus der Datenbank entnommene englische Vokabel mit der im anderen Textfeld eingegebenen deutschen Vokabel verglichen wird?
Ich bin dankbar für jede Hilfe
Hier mein Code:
Java:
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Vokabeltrainer implements ActionListener {
JFrame jf1;
JFrame jf2;
JFrame jf3;
JTextField tf1;
JTextField tf2;
JTextField tf3;
JTextField tf4;
JTextField tf5;
JTextField tf6;
JButton b1;
JButton b2;
JButton b3;
JButton b4;
JButton b5;
JButton b6;
JLabel jl1;
JLabel jl2;
JLabel jl3;
Statement stmt;
String evokabel;
ResultSet rs;
public static void main(String[] args) {
new Vokabeltrainer();
}
public Vokabeltrainer(){
//Startfenster
jf1 = new JFrame();
jf1.setSize(1000, 800);
jf1.setLayout(null);
jf1.setResizable(false);
jf1.setTitle("Vokabeltrainer");
jf1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
tf1 = new JTextField();
tf1.setBounds(200, 150, 600, 100);
tf1.setText("Wilkommen! Was möchtest du tun?");
Font font1 = new Font("SansSerif", Font.BOLD, 28);
tf1.setFont(font1);
tf1.setHorizontalAlignment(JTextField.CENTER);
tf1.setEditable(false);
jf1.add(tf1);
b1 = new JButton();
b1.setBounds(150, 400, 200, 100);
b1.setText("Trainieren!");
b1.addActionListener(this);
b1.setEnabled(true);
jf1.add(b1);
b2= new JButton();
b2.setBounds(650,400,200,100);
b2.setText("Neue Vokabeln Hinzufügen");
b2.addActionListener(this);
b2.setEnabled(true);
jf1.add(b2);
//Fenster zum Abfragen der Vokabeln
jf2 = new JFrame();
jf2.setSize(600,400);
jf2.setLayout(null);
jf2.setVisible(false);
jf2.setTitle("Lass uns trainieren!");
jf2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jl3 = new JLabel();
jl3.setBounds(180,50,200,50);
jl3.setText("Übersetze folgende Vokabel:");
jf2.add(jl3);
//Textfeld zum Anzeigen der Vokabel aus der Datenbank
tf5 = new JTextField();
tf5.setBounds(180, 100, 200, 50);
tf5.setEditable(false);
tf5.setText("");
jf2.add(tf5);
//Textfeld zum Eingeben der Übersetzung
tf6 = new JTextField();
tf6.setBounds(180, 200, 200, 50);
tf6.setEditable(true);
jf2.add(tf6);
b5 = new JButton();
b5.setBounds(180,280,80,50);
b5.setText("Prüfen");
b5.addActionListener(this);
jf2.add(b5);
b6 = new JButton();
b6.setBounds(300,280,80,50);
b6.setText("Weiter");
b6.addActionListener(this);
jf2.add(b6);
//Fenster zum Eingeben der Vokabeln
jf3 = new JFrame();
jf3.setSize(600,400);
jf3.setLayout(null);
jf3.setVisible(false);
jf3.setTitle("Vokabeltrainer");
jf3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jl1 = new JLabel();
jl1.setBounds(150, 150, 100, 30);
jl1.setText("Deutsch:");
jl1.setHorizontalAlignment(JLabel.CENTER);
jf3.add(jl1);
tf2 = new JTextField();
tf2.setBounds(300, 150, 100, 30);
tf2.setEditable(true);
jf3.add(tf2);
jl2 = new JLabel();
jl2.setBounds(150, 200, 100, 30);
jl2.setText("Englisch:");
jl2.setHorizontalAlignment(JLabel.CENTER);
jf3.add(jl2);
tf3 = new JTextField();
tf3.setBounds(300, 200, 100, 30);
tf3.setEditable(true);
jf3.add(tf3);
tf4 = new JTextField();
tf4.setBounds(50, 50, 500, 50);
tf4.setText("Gebe hier deine Vokabeln ein:");
Font font2 = new Font("SansSerif", Font.BOLD, 28);
tf4.setFont(font2);
tf4.setHorizontalAlignment(JTextField.CENTER);
tf4.setEditable(false);
jf3.add(tf4);
b3 = new JButton();
b3.setBounds(300,250,150,50);
b3.setText("Übernehmen");
b3.addActionListener(this);
jf3.add(b3);
b4 = new JButton();
b4.setBounds(5,5,100,30);
b4.setText("Zurück");
b4.addActionListener(this);
jf3.add(b4);
jf1.setVisible(true);
try
{
load_con();
}
catch(Exception e) { e.printStackTrace(); }
}
private void load_con() throws Exception
{
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/vokabeln?user=root&password=");
stmt=con.createStatement();
try {
ResultSet rs = stmt.executeQuery("SELECT englisch FROM Vokabelliste");
while(rs.next()){
tf5.setText(""+rs.getString("englisch"));
}
} catch (SQLException e) {
System.out.println("Fehler!");
}
}
public void actionPerformed(ActionEvent a) {
String cmd = a.getActionCommand();
if(cmd.equals("Trainieren!")){
jf1.setVisible(false);
jf2.setVisible(true);
}
if(cmd.equals("Neue Vokabeln Hinzufügen")){
jf1.setVisible(false);
jf3.setVisible(true);
}
if(cmd.equals("Zurück")){
jf3.setVisible(false);
jf1.setVisible(true);
}
//Nach bedienen des Buttons werden deutsche und englische Vokabel in der Datenbank gespeichert
if(cmd.equals("Übernehmen")){
String eingabe = tf2.getText();
tf2.setText("");
String eingabe1 = tf3.getText();
tf3.setText("");
try{
stmt.executeUpdate("insert into Vokabelliste (deutsch, englisch) value ('"+eingabe+"','"+eingabe1+"')");
}
catch(Exception ex)
{
ex.printStackTrace();
}
tf2.setText("");
tf3.setText("");
}
if(cmd.equals("Prüfen")){
}
if(cmd.equals("Weiter")){
tf5.setText("");
jf2.repaint();
jl3.repaint();
//Eine englische Vokabel soll aus der Datenbank genommen werden und in Textfeld5 hinzugefügt
try {
ResultSet rs = stmt.executeQuery("SELECT englisch FROM Vokabelliste");
while(rs.next()){
tf5.setText(""+rs.getString("englisch"));
}
} catch (SQLException e) {
System.out.println("Fehler!");
}
}
}
}
Zuletzt bearbeitet: