Ich habe zu einer Bank welche ich programmiert habe mit einzahlen, auszahlen usw. eine Kontoklasse und eine GUI erstellt, über die das ablaufen soll. Es geht mir jetzt nur um die Methode "einzahlen". Diese Methode funktioniert eigentlich, aber nur wenn ich sie von der Bank aus teste, aber nicht in der GUI. Unten sind die Quelltexte von den Klassen und der GUI, könnte es sich mal jemand anschauen und vlt gucken wo der Fehler liegt. Die GUI hält übrigens die Klasse Bank und die Bank die Klasse Konto.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Java:
public class Bank {
private Konto[] kto=new Konto[5];
private int ppin, pktnr;
public Bank() {
for (int i= 0; i<5;i++){
kto[i] = new Konto(i);
}
}
public Konto FindeKonto (int pktnr) {
for (int i=0; i<kto.length ; i++) {
if (pktnr==kto[i].getktnr()) return kto[i];
}
return null;
}
public void einzahlen (int pktnr , int b) {
Konto dummy=FindeKonto(pktnr);
dummy.einzahlen(b);
}
public void auszahlen(int pktnr , int ppin , int b) {
Konto dummy=FindeKonto(pktnr);
if(dummy.getPinok(ppin)){
dummy.auszahlen(b);
}
}
public void überweisen(int fktnrAbheben , int pktnrEinzahlen ,int ppin,int b){
for (int i=0; i<kto.length;i++){
if(pktnrEinzahlen==kto[i].getktnr()){
kto[i].einzahlen(b);
}
if(fktnrAbheben==kto[i].getktnr() && kto[i].getPinok(ppin)){
kto[i].auszahlen(b);
}
}
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Java:
import java.awt.*; //abstract windowing toolkit
import javax.swing.*; //swing-Klassen
import java.awt.event.*; //Event-Klassen
public class Layout extends JFrame implements ActionListener
{
private Bank bank = new Bank() ;
private String [] s = {"Einzahlen" , "Auszahlen" , "Überweisung" , "Kontostand" , "Pin" , "Changepin"};
private JButton [] jb = new JButton[s.length];
private JTextArea jtf1,jtf2,jtf3,jtf4,jtf5; //Deklaration eines Objektes aus der Klasse JTextField
private JButton jb1,jb2,jb3,jb4,jb5,jb6;
private Font f;
public Layout()
{
super("BankLayout"); //ruft den Konstruktor der Oberklasse (JFrame) auf
setDefaultCloseOperation(3); //schließen und alle Prozesse beenden
setLayout(null); //schaltet Layout Manager aus
setBounds(300,300,1100,700); //(x,y Breite,Höhe) vom Fenster
getContentPane().setBackground(new Color(198,44,58)); //RGB
jtf1 = new JTextArea(); //Instanziieren eines neuen Objekts der Klasse JTextField
f = new Font("Roman",1,20);
jtf1.setFont (f);
jtf1.setText("");
jtf1.setEditable(true);
jtf1.setBounds(680,300,145,60); //am Objekt selber wird Methode aufgerufen
add(jtf1); //fügt Objekt dem Cont ainer (=ContentPane) hinzu
setVisible(true); //schaltet ganzen JFrame auf SICHTBAR
setResizable(false) ;
jtf2 = new JTextArea(); //Instanziieren eines neuen Objekts der Klasse JTextField
jtf2.setFont (f);
jtf2.setText("");
jtf2.setEditable(true);
jtf2.setBounds(100,250,145,60); //am Objekt selber wird Methode aufgerufen
add(jtf2); //fügt Objekt dem Container (=ContentPane) hinzu
jtf3 = new JTextArea();
jtf3.setFont (f);
jtf3.setText("");
jtf3.setEditable(true);
jtf3.setBounds(100,350,145,60); //am Objekt selber wird Methode aufgerufen
add(jtf3);
jtf4 = new JTextArea();
jtf4.setFont (f);
jtf4.setText("Kontonummer");
jtf4.setEditable(false);
jtf4.setBounds(100,170,145,60);
add(jtf4);
jtf5 = new JTextArea();
jtf5.setFont(f);
jtf5.setText("Pin eingeben");
jtf5.setEditable(false);
jtf5.setBounds(100,430,145,60);
add(jtf5);
setVisible(true);
jb1 = new JButton();
jb1.setBounds(350,100,160,60);
jb1.setText("Abheben");
add (jb1);
jb2 = new JButton();
jb2.setBounds(350,170,160,60);
jb2.setText("Einzahlen");
add (jb2);
jb3 = new JButton();
jb3.setBounds(350,240,160,60);
jb3.setText("Überweisung");
add (jb3);
jb4 = new JButton();
jb4.setBounds(350,310,160,60);
jb4.setText("Kontostand");
add (jb4);
jb5 = new JButton();
jb5.setBounds(350,380,160,60);
jb5.setText("Pin");
add (jb5);
jb6 = new JButton();
jb6.setBounds(350,450,160,60);
jb6.setText("Change Pin");
add (jb6);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==jb[2]) {
int pktnr = new Integer(jtf2.getText());
int b = new Integer (jtf1.getText());
bank.einzahlen(pktnr , b);
}
if (e.getSource()==jb[1]) {
int pktnr = new Integer(jtf2.getText());
int b = new Integer (jtf1.getText());
int ppin = new Integer (jtf3.getText());
bank.auszahlen(pktnr , ppin , b);
}
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Java:
public class Konto
{
private int ktostand , ktnr , pin;
public Konto(int pktnr){
ktnr= pktnr;
pin=4711;
ktostand=0;
}
public Konto(int pktnr , int ppin , int pktostand) {
ktnr = pktnr ;
pin = ppin;
ktostand = pktostand;
}
public int getktostand() {
return ktostand;
}
public void setPin(int pinneu , int pinalt) {
if (pin==pinalt)pin = pinneu;
else System.out.println("Falscher Pin") ;
}
public boolean getPinok(int ppin){
return (pin==ppin);
}
public int getktnr() {
return ktnr;
}
public void einzahlen(int b){
ktostand+=b;
}
public void auszahlen (int b){
ktostand-=b;
}
}