Hallo!
Bei meinem letzten Projekt ist was schiefgelaufen. (Arraylist ändern)
Und zwar habe ich vergessen zu schreiben, dass nur das Element, das die Kontonummer, die ich in der ComboBox ausgewählt habe, geändert werden soll. Das hat dazu geführt, dass ich die gesamte Arraylist mit diesen einzigen Element überschrieben habe.
Dummerweise führte gestern ein PC-Absturz dazu, dass mir das Projekt verloren ging. Hab jetzt auf die Schnelle was Neues gemacht, allerdings sind da ein paar Fehler drin, wo ich nicht weiter weiß.
Hier mal der Code meiner Klassen:
Kontodaten:
KontoGUI
Kontoverwaltung:
Die Fehler sind folgende:
1. Beim "Ändern" gibt es einen Fehler: (rot unterstrichen)
"Cannot invoke equals(JComboBox) on the primitive type int"
2. Wenn ich das Programm starte, kommt zwar das Fenster, aber die Tabelle ist leer, bzw. stehen bei den Kontonummern "0" und bei den Beträgen "0.0".
Was ist da falsch, bzw. fehlt mir dort was?
Bitte wieder um schnelle Hilfe und wenn mgl. um den richtigen Code, da ich ab Freitag mit Prüfungen beschäftigt bin und das Projekt gern vorher fertig haben möchte.
mfG RaptoXX
Bei meinem letzten Projekt ist was schiefgelaufen. (Arraylist ändern)
Und zwar habe ich vergessen zu schreiben, dass nur das Element, das die Kontonummer, die ich in der ComboBox ausgewählt habe, geändert werden soll. Das hat dazu geführt, dass ich die gesamte Arraylist mit diesen einzigen Element überschrieben habe.
Dummerweise führte gestern ein PC-Absturz dazu, dass mir das Projekt verloren ging. Hab jetzt auf die Schnelle was Neues gemacht, allerdings sind da ein paar Fehler drin, wo ich nicht weiter weiß.
Hier mal der Code meiner Klassen:
Kontodaten:
Java:
package test;
public class Kontodaten {
private int kontonr;
private String vname;
private String nname;
private double betrag;
public Kontodaten(int kontonr, String vname, String nname, double betrag) {
}
public String getVName() {
return vname;
}
void setVName(String vname) {
this.vname = vname;
}
public String getNName() {
return nname;
}
void setNName(String nname) {
this.nname = nname;
}
void setKontonummer(int kontonr) {
this.kontonr = kontonr;
}
int getKontonummer() {
return kontonr;
}
void setBetrag(double betrag) {
this.betrag = betrag;
}
double getBetrag() {
return betrag;
}
}
KontoGUI
Java:
package test;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JButton;
import javax.swing.JTextField;
public class KontoGUI extends JFrame implements ActionListener {
String[][] inhalt; //Eigenschaften der Klasse
JTable table;
JPanel p;
JPanel p1;
JLabel kontonr = new JLabel("Kontonummer:");
JComboBox Kontonr = new JComboBox();
JLabel nname = new JLabel("Name:");
JLabel vname = new JLabel("Vorname:");
JLabel betrag = new JLabel("Betrag:");
JTextField tfNName = new JTextField();
JTextField tfVName = new JTextField();
JTextField tfBetrag = new JTextField();
JButton showButton = new JButton("Daten anzeigen");
JButton changeButton = new JButton("Ändern");
JButton clearButton = new JButton("Löschen");
JPanel p2;
ArrayList<Kontodaten> liste = new ArrayList<Kontodaten>();
public void initPanel1(){
p1= new JPanel();
p1.setLayout(null);
kontonr.setBounds(20,25,110,30);
p1.add(kontonr);
Kontonr.setBounds(150,25,110,30);
p1.add(Kontonr);
showButton.setBounds(20,70,240,20);
p1.add(showButton);
nname.setBounds(20,100,110,30);
p1.add(nname);
vname.setBounds(20,130,110,30);
p1.add(vname);
betrag.setBounds(20,160,110,30);
p1.add(betrag);
tfNName.setBounds(150,100,110,30);
p1.add(tfNName);
tfVName.setBounds(150,130,110,30);
p1.add(tfVName);
tfBetrag.setBounds(150,160,110,30);
p1.add(tfBetrag);
changeButton.setBounds(20,210,240,30);
p1.add(changeButton);
clearButton.setBounds(20,255,240,30);
p1.add(clearButton);
showButton.addActionListener(this);
changeButton.addActionListener(this);
clearButton.addActionListener(this);
}
public KontoGUI(){
erzeugeliste(liste);
this.setTitle("Kontoverwaltung");
this.setSize(500,250);
String[] kon = new String[liste.size()];
for (int i=0; i<liste.size(); i++)
kon[i]=String.valueOf(liste.get(i).getKontonummer());
Arrays.sort(kon);
Kontonr= new JComboBox(kon);
initGUI();
}
public void initPanel2(){
p2= new JPanel();
p2.setLayout(new BorderLayout());
String[] titel = {"Kontonr.","Vorname", "Name","Betrag"};
inhalt = new String[liste.size()][4];
table = new JTable(inhalt, titel);
p2.add(new JScrollPane(table),BorderLayout.CENTER);
tabellenausgabe();
}
public void initGUI() {
p = (JPanel)this.getContentPane();
initPanel1();
initPanel2();
p.setLayout(new GridLayout(1,2));
p.add(p1);
p.add(p2);
this.pack();
}
private static void erzeugeliste(ArrayList<Kontodaten> liste) {
liste.add(new Kontodaten(2350124, "Luise", "Auermann", 2000.00));
liste.add(new Kontodaten(4250125, "Hans", "Zaun", 1200.00));
liste.add(new Kontodaten(7440127, "Tom", "Bock", -400.00));
liste.add(new Kontodaten(1760126, "Mario", "Haus", 317.74));
liste.add(new Kontodaten(5140133, "Saskia", "Brauer", -74.68));
liste.add(new Kontodaten(8560142, "Julia", "Hess", 147.58));
liste.add(new Kontodaten(9930141, "Christin", "Berger", 0.00));
liste.add(new Kontodaten(3270132, "Andreas", "Wagner", 641.21));
liste.add(new Kontodaten(1180135, "Caroline", "Großmann", -474.15));
liste.add(new Kontodaten(4810155, "Axel", "Auermann", 1.23));
}
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
//Event:Anzeigen
if(source == showButton){
for (int i = (liste.get(i).getKontonummer());;){
tfVName.setText(inhalt[i][1]);
tfNName.setText(inhalt[i][2]);
tfBetrag.setText(inhalt[i][3]);
}
}
//Event:Clear
if(source == clearButton){
tfVName.setText("");
tfNName.setText("");
tfBetrag.setText("");
}
//Event:Ändern
if(source == changeButton){
for (int i= 0; i<liste.size(); i++ ){
if(liste.get(i).getKontonummer().equals(Kontonr))
inhalt[i][1]= String.valueOf(tfVName);
inhalt[i][2]= String.valueOf(tfVName);
inhalt[i][3]= String.valueOf(tfBetrag);
}
}
}
private void tabellenausgabe() {
for (int i=0;i<liste.size();i++){
inhalt[i][0]= String.valueOf(liste.get(i).getKontonummer());
inhalt[i][1]= liste.get(i).getVName();
inhalt[i][2]= liste.get(i).getNName();
inhalt[i][3]= String.valueOf(liste.get(i).getBetrag());
}
table.repaint();
}
}
Kontoverwaltung:
Java:
package test;
public class Kontoverwaltung {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
KontoGUI stud = new KontoGUI();
stud.setLocation(500,250);
stud.setVisible(true);
}
}
Die Fehler sind folgende:
1. Beim "Ändern" gibt es einen Fehler: (rot unterstrichen)
"Cannot invoke equals(JComboBox) on the primitive type int"
2. Wenn ich das Programm starte, kommt zwar das Fenster, aber die Tabelle ist leer, bzw. stehen bei den Kontonummern "0" und bei den Beträgen "0.0".
Was ist da falsch, bzw. fehlt mir dort was?
Bitte wieder um schnelle Hilfe und wenn mgl. um den richtigen Code, da ich ab Freitag mit Prüfungen beschäftigt bin und das Projekt gern vorher fertig haben möchte.

mfG RaptoXX