Hi
Ich habe heute wieder ein bischen an meinem Karteikasten herumgeschraubt,
wobei ich auf ein Poblem gestoßen bin das ich mir nicht erklären kann!
Schon mal im Voraus ich habe meine Methoden in eine extra Class gemacht,
damit die Main übersichtlicher wird.
Also hier einmal mein Code der Main.java :
Und dazu noch den Code der Methoden.java :
Soviel zum Code!
Also mein Problem ist eigentlich nur, dass ich fünf Vokabeln in der list habe und auch 5 Vokabeln
abgefragt habe die list immer noch einen Inhalt hat.
Ich habe mir auch nach jeder Vokabel auch die Listsize ausgeben lassen, woraus ich jedoch keine Regelmäßigkeit ersehen konnt.
Deshalb wollte ich mal von euch wissen woran das liegen könnte!!!!!
MFG
programmierer12
Ich habe heute wieder ein bischen an meinem Karteikasten herumgeschraubt,
wobei ich auf ein Poblem gestoßen bin das ich mir nicht erklären kann!
Schon mal im Voraus ich habe meine Methoden in eine extra Class gemacht,
damit die Main übersichtlicher wird.
Also hier einmal mein Code der Main.java :
Java:
package karteikasten;
import java.awt.Color;
public class Main extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
public static JPanel contentPane;
public static JPasswordField txtPasswort;
public static JTextField txtBenutzer;
public static JTextPane txtpBenutzer;
public static JTextPane txtpPasswort;
public static JButton btnRegister;
public static JButton btnLogIn;
public static JButton btnLogOut;
public static JButton btnEingabe;
public static JButton btnAbfrage;
public static JButton btnStatistik;
public static JButton btnSpeichern;
public static JButton btnUeberpruefen;
public static JButton btnMenue;
public static JTextField tfFrage;
public static JTextField tfAntwort;
public static String eingeloggt;
public static String listIndex;
public static int richtig = 0;
public static int exist = 0;
public static int zufall;
public static int index;
public static int phase = 0;
public static String[] splittArray;
@SuppressWarnings("rawtypes")
public static List list = new ArrayList();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Main frame = new Main();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Main() {
setTitle("Karteikasten-Log In");
setForeground(new Color(102, 205, 170));
setBackground(Color.LIGHT_GRAY);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBackground(new Color(102, 205, 170));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
txtPasswort = new JPasswordField();
txtPasswort.setBounds(91, 48, 138, 22);
contentPane.add(txtPasswort);
txtBenutzer = new JTextField();
txtBenutzer.setBackground(new Color(255, 255, 255));
txtBenutzer.setBounds(91, 13, 138, 22);
contentPane.add(txtBenutzer);
txtBenutzer.setColumns(10);
txtpBenutzer = new JTextPane();
txtpBenutzer.setEditable(false);
txtpBenutzer.setBackground(new Color(102, 205, 170));
txtpBenutzer.setText("Benutzer");
txtpBenutzer.setFont(new Font("Arial", Font.ITALIC, 16));
txtpBenutzer.setForeground(Color.BLACK);
txtpBenutzer.setBounds(12, 13, 67, 22);
contentPane.add(txtpBenutzer);
txtpPasswort = new JTextPane();
txtpPasswort.setEditable(false);
txtpPasswort.setBackground(new Color(102, 205, 170));
txtpPasswort.setText("Passwort");
txtpPasswort.setFont(new Font("Arial", Font.ITALIC, 16));
txtpPasswort.setForeground(Color.BLACK);
txtpPasswort.setBounds(12, 48, 67, 22);
contentPane.add(txtpPasswort);
btnLogIn = new JButton("Log In ");
Methoden.login();
btnLogIn.setBounds(12, 97, 217, 25);
contentPane.add(btnLogIn);
btnRegister = new JButton("Register");
Methoden.register();
btnRegister.setBounds(12, 147, 217, 25);
contentPane.add(btnRegister);
}
public static void EingabeAbfrage() {
txtpBenutzer.setVisible(false);
txtpPasswort.setVisible(false);
txtBenutzer.setVisible(false);
txtPasswort.setVisible(false);
btnRegister.setVisible(false);
btnLogIn.setVisible(false);
btnLogOut = new JButton("LogOut");
btnLogOut.setBounds(12, 13, 97, 25);
btnLogOut.setVisible(true);
contentPane.add(btnLogOut);
btnLogOut.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
btnLogOut.setVisible(false);
btnEingabe.setVisible(false);
btnAbfrage.setVisible(false);
btnStatistik.setVisible(false);
txtpBenutzer.setVisible(true);
txtpPasswort.setVisible(true);
txtBenutzer.setVisible(true);
txtPasswort.setVisible(true);
btnRegister.setVisible(true);
btnLogIn.setVisible(true);
}
});
btnEingabe = new JButton("Eingabe");
btnEingabe.setBounds(12, 57, 97, 25);
btnEingabe.setVisible(true);
contentPane.add(btnEingabe);
btnEingabe.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
btnEingabe.setVisible(false);
btnAbfrage.setVisible(false);
btnStatistik.setVisible(false);
btnLogOut.setVisible(false);
tfFrage = new JTextField();
tfFrage.setBounds(12, 13, 180, 188);
tfFrage.setToolTipText("Geben Sie hier ihre Frage ein!");
tfFrage.setVisible(true);
tfAntwort = new JTextField();
tfAntwort.setBounds(240, 13, 180, 188);
tfAntwort.setToolTipText("Geben Sie hier ihre Antwort ein!");
tfAntwort.setVisible(true);
btnSpeichern = new JButton("Speichern");
btnSpeichern.setBounds(240, 217, 117, 25);
btnSpeichern.setVisible(true);
btnSpeichern.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Methoden.speichern();
}
});
btnMenue = new JButton("Menü");
btnMenue.setBounds(12, 215, 117, 25);
btnMenue.setVisible(true);
btnMenue.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Methoden.menueeingabe();
}
});
contentPane.add(tfFrage);
contentPane.add(tfAntwort);
contentPane.add(btnSpeichern);
contentPane.add(btnMenue);
contentPane.repaint();
}
});
btnAbfrage = new JButton("Abfrage");
btnAbfrage.setBounds(12, 102, 97, 25);
btnAbfrage.setVisible(true);
contentPane.add(btnAbfrage);
btnAbfrage.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
btnEingabe.setVisible(false);
btnAbfrage.setVisible(false);
btnStatistik.setVisible(false);
btnLogOut.setVisible(false);
tfFrage = new JTextField();
tfFrage.setBounds(12, 13, 180, 188);
tfFrage.setVisible(true);
tfAntwort = new JTextField();
tfAntwort.setBounds(240, 13, 180, 188);
tfAntwort.setToolTipText("Geben Sie hier ihre Antwort ein!");
tfAntwort.isFocusable();
tfAntwort.setVisible(true);
btnUeberpruefen = new JButton("Überprüfen");
btnUeberpruefen.setBounds(240, 217, 117, 25);
btnUeberpruefen.setVisible(true);
Methoden.liste();
btnUeberpruefen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Methoden.pruefen();
}
});
btnMenue = new JButton("Menü");
btnMenue.setBounds(12, 215, 117, 25);
btnMenue.setVisible(true);
btnMenue.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Methoden.menueabfrage();
}
});
contentPane.add(tfFrage);
contentPane.add(tfAntwort);
contentPane.add(btnUeberpruefen);
contentPane.add(btnMenue);
contentPane.repaint();
}
});
btnStatistik = new JButton("Statistik");
btnStatistik.setBounds(12, 148, 97, 25);
btnStatistik.setVisible(true);
contentPane.add(btnStatistik);
btnStatistik.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
}
});
}
}
Und dazu noch den Code der Methoden.java :
Java:
package karteikasten;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
public class Methoden extends Main{
public static int leer = 0;
private static final long serialVersionUID = 1L;
public static void mischen(){
zufall = (int) (Math.random()*index);
}
public static void login(){
btnLogIn.addActionListener(new ActionListener() {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e) {
int login = 0;
String eingabe, benutzer, passwort;
benutzer=txtBenutzer.getText();
passwort= txtPasswort.getText();
eingabe = benutzer + "|" + passwort;
if(txtBenutzer.getText().equals("") || txtPasswort.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Bitte füllen Sie alle Felder aus!");
}
else {
try {
BufferedReader in = new BufferedReader(new FileReader("Benutzer.dat"));
String zeile = null;
while ((zeile = in.readLine()) != null) {
if(zeile.equals(eingabe)){
login = 1;
}
}
} catch (IOException e1) {
e1.printStackTrace();
}
if(login == 1){
JOptionPane.showMessageDialog(null, "Sie haben sich erfolgreich eingeloggt");
eingeloggt = benutzer;
EingabeAbfrage();
}
else{
JOptionPane.showMessageDialog(null, "Der Benutzername oder das Passwort sind falsch");
}
txtBenutzer.setText("");
txtPasswort.setText("");
}
}
});
}
public static void register(){
btnRegister.addActionListener(new ActionListener() {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent arg0) {
if(txtBenutzer.getText().equals("") || txtPasswort.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Bitte füllen Sie alle Felder aus!");
}
else {
try {
String schreiben, benutzer, passwort;
benutzer=txtBenutzer.getText();
passwort= txtPasswort.getText();
schreiben = benutzer + "|" + passwort;
BufferedWriter out = new BufferedWriter(new FileWriter("Benutzer.dat", true));
out.write("\r" + schreiben + "\r\n");
out.close();
txtBenutzer.setText("");
txtPasswort.setText("");
}
catch (IOException e1){
e1.printStackTrace();
}
}
}
});
}
public static void speichern(){
if(tfFrage.getText().equals("") || tfAntwort.getText().equals("")){
JOptionPane.showMessageDialog(null, "Bitte füllen Sie alle Felder aus");
}
else{
try {
String frage, antwort, schreiben;
frage = tfFrage.getText();
antwort = tfAntwort.getText();
schreiben = frage + "|" + antwort + "|" + phase;
BufferedWriter out = new BufferedWriter(new FileWriter(eingeloggt + "_Vokabeln.voc", true));
out.write("\r" + schreiben + "\r\n");
out.close();
tfFrage.setText("");
tfAntwort.setText("");
}
catch (IOException e1){
e1.printStackTrace();
}
}
}
public static void fragen(){
Methoden.mischen();
tfFrage.setText("");
tfAntwort.setText("");
tfFrage.repaint();
tfAntwort.repaint();
index = list.size();
Methoden.mischen();
listIndex = (String) list.get(zufall);
splittArray = listIndex.split("\\|");
tfFrage.setText(splittArray[0].toString());
}
public static void pruefen(){
index = list.size();
if(index == 2){
JOptionPane.showMessageDialog(null, "Abfrage beendet");
Methoden.menueabfrage();
}
else{
do{
if(tfFrage.getText().isEmpty()){
fragen();
}
else{
if(tfAntwort.getText().isEmpty()) JOptionPane.showMessageDialog(null, "Füllen Sie alle Felder aus");
else{
if(list.size() == 6){
JOptionPane.showMessageDialog(null, "Abfrage beendet");
menueabfrage();
}
else{
if(tfAntwort.getText().equals(splittArray[1].toString())){
System.out.println("Size" + list.size());
JOptionPane.showMessageDialog(null, "Richtig");
if(list.isEmpty()) System.out.println(true);
else {
System.out.println(false);
}
System.out.println(list.remove(zufall));
Methoden.fragen();
}
else{
JOptionPane.showMessageDialog(null, "Falsch");
tfAntwort.setText("");
tfAntwort.repaint();
}
}
}
}
}while(tfFrage.getText().equals(""));
}
}
@SuppressWarnings("unchecked")
public static void liste(){
BufferedReader in;
try {
in = new BufferedReader(new FileReader(eingeloggt + "_Vokabeln.voc"));
String zeile = null;
while ((zeile = in.readLine()) != null) {
list.add(zeile);
index = list.size();
Methoden.mischen();
listIndex = (String) list.get(zufall);
splittArray = listIndex.split("\\|");
tfFrage.setText(splittArray[0].toString());
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
public static void menueabfrage(){
tfFrage.setVisible(false);
tfAntwort.setVisible(false);
btnMenue.setVisible(false);
btnUeberpruefen.setVisible(false);
btnLogOut.setVisible(true);
btnEingabe.setVisible(true);
btnAbfrage.setVisible(true);
btnStatistik.setVisible(true);
}
public static void menueeingabe(){
tfFrage.setVisible(false);
tfAntwort.setVisible(false);
btnMenue.setVisible(false);
btnSpeichern.setVisible(false);
btnLogOut.setVisible(true);
btnEingabe.setVisible(true);
btnAbfrage.setVisible(true);
btnStatistik.setVisible(true);
}
public static void ende(){
if(list.size() == 1){
JOptionPane.showMessageDialog(null, "Abfrage beendet");
Methoden.menueabfrage();
}
else{
Methoden.fragen();
}
}
}
Soviel zum Code!
Also mein Problem ist eigentlich nur, dass ich fünf Vokabeln in der list habe und auch 5 Vokabeln
abgefragt habe die list immer noch einen Inhalt hat.
Ich habe mir auch nach jeder Vokabel auch die Listsize ausgeben lassen, woraus ich jedoch keine Regelmäßigkeit ersehen konnt.
Deshalb wollte ich mal von euch wissen woran das liegen könnte!!!!!
MFG
programmierer12