Avatar billede data2k.dk Nybegynder
16. november 2004 - 12:16 Der er 17 kommentarer og
1 løsning

return fejl med boolean

har følgende små koder


  private void jButton1_actionPerformed(ActionEvent e)
  {
  if(jRadioButton1.isSelected())
  {
    long konto = Integer.parseInt(jTextField2.getText());
    if(kontrol.opretKonto(konto, jTextField1.getText()))
    jLabel5.setText("    " + "Konto oprettet");
    else
    jLabel5.setText("    " + "Fejl!");
  }
  }
}



den kalder denne metode




public boolean opretKonto(long kontoNr, String navn)
{

for(int i = 0; i < konti.size(); i++)
{
 
    if ( ((Account)konti.get(i)).name.equals(navn) && ((Account)konti.get(i)).acctNumber == (kontoNr))
    return false;
}

  return true;
}


kan ikke få den til at skrive fejl i min textlabel... har prøvet forskellige måde at få den til at modtage return..
Avatar billede mikkelbm Nybegynder
16. november 2004 - 12:19 #1
Hvor tilføjer du noget til listen?
Avatar billede arne_v Ekspert
16. november 2004 - 12:21 #2
Den vil vel kun skrive fejl hvis kontoen eksisterer i forvejen !?
Avatar billede mikkelbm Nybegynder
16. november 2004 - 12:21 #3
Du spørger om der allerede er en konto med det navn og kontonummer, men du tilføjer ikke kontoen (Account) nogle steder. Heller ikke selvom du skriver "kontoen oprettet"...
Avatar billede data2k.dk Nybegynder
16. november 2004 - 12:21 #4
ja... og det gør kontoen også.. men den skriver ikke fejl
Avatar billede data2k.dk Nybegynder
16. november 2004 - 12:22 #5
to sekunder.. tror sgu jeg har glemt noget hehe
Avatar billede mikkelbm Nybegynder
16. november 2004 - 12:22 #6
Har du noget lignende:

Account ac = new Account(navn, kontonr);
konto.add(ac);


nogle steder?
Avatar billede data2k.dk Nybegynder
16. november 2004 - 12:28 #7
knappen er den samme men har nu lavet dette

public boolean opretKonto(long kontoNr, String navn)
{

for(int i = 0; i < konti.size(); i++)
{
 
if ( ((Account)konti.get(i)).name.equals(navn) && ((Account)konti.get(i)).acctNumber == (kontoNr))
{
return false;
}
else
{
  konto = new Account(navn, kontoNr);
  konti.add(konto);
}

}
return true;
}


men virker ikke
Avatar billede arne_v Ekspert
16. november 2004 - 12:30 #8
Prøv og skriv de data ud som du sammenligner på. Jeg tror ikke at de matcher helt.
Avatar billede mikkelbm Nybegynder
16. november 2004 - 12:31 #9
Følgende er vel mere korrekt: ?

public boolean opretKonto(long kontoNr, String navn)
{
  for(int i = 0; i < konti.size(); i++)
  {
      if ( ((Account)konti.get(i)).name.equals(navn) && ((Account)konti.get(i)).acctNumber == (kontoNr))
      {
        return false;
      }
  }
 
  konto = new Account(navn, kontoNr);
  konti.add(konto);

  return true;
}

Men jeg tror ikke det er der problemet ligger, for det ser rigtigt nok ud.
Avatar billede mikkelbm Nybegynder
16. november 2004 - 12:32 #10
Må vi prøve at se koden til din Account-klasse ?
Avatar billede data2k.dk Nybegynder
16. november 2004 - 12:33 #11
mikkelbm..

læg et svar.. fejlen lå der.. skal lige se hvad jeg havde gjort forkert
Avatar billede data2k.dk Nybegynder
16. november 2004 - 12:34 #12
det virkede dit eksempel... men du må gerne se toppen af account.. den er lidt lang.. men der dataen er


public class Account
{
  private NumberFormat fmt = NumberFormat.getCurrencyInstance();

  private final double RATE = 0.035; 

  long acctNumber;
  double balance;
  public String name;


  public Account (String owner, long account, double initial)
  {
      name = owner;
      acctNumber = account;
      balance = initial;
  }

  public Account (String owner, long account)
  {
      name = owner;
      acctNumber = account;
      balance = 0.0;
  }
Avatar billede mikkelbm Nybegynder
16. november 2004 - 12:34 #13
svar
Avatar billede data2k.dk Nybegynder
16. november 2004 - 12:35 #14
hmm havde jeg bare placeret true forkert? uden for forkerte paranteser?
Avatar billede mikkelbm Nybegynder
16. november 2004 - 12:36 #15
Det eneste jeg skulle tjekke i Account-klassen, var at du fik sat dine variable lig med parametrene i contructoren. Men det ser jo rigigt ud :)

Jeg synes dog det er pænere at have tilgang til en klasses variabler gennem get og set metoder.
Avatar billede mikkelbm Nybegynder
16. november 2004 - 12:38 #16
Før oprettede du, hvis der kontoen ikke eksisterede, en konto for hvert gennemløb i for-løkken.
Avatar billede data2k.dk Nybegynder
16. november 2004 - 12:41 #17
ops... den lå jo inde i løkken:o) hehe...

nu står der return true til sidst... men er boolean ikke automatisk sat til true? behøver jeg den?
Avatar billede mikkelbm Nybegynder
16. november 2004 - 12:46 #18
En boolean er som default false. Og metoden kræver jo en returværdi, så den er du nødt til at angive.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester