Avatar billede mpej Nybegynder
13. november 2003 - 23:06 Der er 7 kommentarer og
1 løsning

To slags input i samme program.

*dette er spørgsmål lå før under J2EE hvor det var forkert placeret*.

Jeg er i gang med et eksamensprojekt, hvor jeg skal lave en slags bank-program. Det er et begynderkursus og jeg har kun programmeret i lidt over to mdr. Jeg har lavet en menu der er opbygget på den måde at man taster et tal for at gå til en ny undermenu. Dette foregår vha. en BufferedReader.
Nogle af metoderne der bliver kaldt fra min menu bruger JOptionPane til at læse tal (f.eks. hvor meget man vil sætte ind på en bankkonto). Mit problem er at JOptionPane forsvinder bag mit consol-vindue - og jeg ved ikke hvorfor. Nogen idéer til hvad det kan være?

Java2 1.4.2 og jeg programmerer i NetBeans IDE 3.5.

Del af program (fra menu:

System.out.println("Hvilket lån vil du betale tilbage på?" +
                    " (1,2,3?)");
                    input = konsol.readLine();
                    int svarLoan2 = Integer.parseInt(input);
                    System.out.println("Du har valgt lån " + svarLoan2);
                    minBank.betalLoan(svarLoan2);



'''''''''''''''''''''''''''''''''''

del af program (fra bank-klasse):



        String input = JOptionPane.showInputDialog(
        "Hvor mange penge vil du betale tilbage på dette lån?");
        double amount = Double.parseDouble(input);



'''''''''''''''''''''''''''''''''
Avatar billede magoo20000 Nybegynder
13. november 2003 - 23:24 #1
Jeg kender ikke Netbeans. Benytter selv IntelliJ og Eclipse.

Hvad mener du med "Dette foregår vha. en BufferedReader."? Hvor er din JOptionPane?

Og i øvrig: omdøb dine metoder. Der er ikke noget der hedder betalLoan :-)
Avatar billede magoo20000 Nybegynder
13. november 2003 - 23:29 #2
JOptionPane burde (tror jeg) ligge sig øverst.
Avatar billede magoo20000 Nybegynder
13. november 2003 - 23:51 #3
Kan vi ikke se lidt mere kode?
Avatar billede mpej Nybegynder
14. november 2003 - 07:21 #4
http://akira.ruc.dk/~mpej/

Hvad mener du med at der ikker er noget der hedder betalLoan? Skulle det heller have heddet tilbageBetalDelAfEllerHeltLaan?

Det jeg mener med BufferedReader er at du får et input fra konsollen, f.eks. tallet 2, som så fører dig videre til menu 2.
Avatar billede conrad Nybegynder
14. november 2003 - 09:00 #5
Jeg tror han mener at betalLoan er en blanding af dansk og engelsk.

Du kan evt prøve og se om følgende lille klasse kan hjælpe
import javax.swing.*;

public class MyJOptionPane extends JOptionPane
{
    public MyJOptionPane()
    {
        super();
        requestFocusInWindow();   
    }
}

Så skal du bare kalde MyJOptionPane.XXXX istedet for JOptionPane.XXXXX.

(Personligt synes jeg det er lidt mærkeligt at blande en konsol applikation og en GUI applikation)
Avatar billede mpej Nybegynder
14. november 2003 - 11:42 #6
Jeg er enig i at det er mærkeligt at blande konsol og GUI, men det er en del af opgaven at have en JOptionPane med, og vi har ikke lært at bruge GUI endnu.

Mht. problemet har jeg implenteret det således:


import javax.swing.*;

public class MyJOptionPane extends JOptionPane
{
    public MyJOptionPane()
    {
        super();
        requestFocusInWindow();   
    }
   
    public String show(String tekst) {
        return showInputDialog(tekst);   
       
    }
}


'''''''''''''''''''''''''''''''''''''


    public void buyAktie(int n)
    {
        int nummer = n - 1;
        Aktie tempAktie = (Aktie) aktier.get(nummer);
        double kurs = tempAktie.getKurs();
        String input = myJOptionPane.show(
        "Hvor mange stk. aktier vil du købe? Kursværdi: " + kurs);
        int antal = Integer.parseInt(input);
       
        Depot tempDepot = (Depot) mineAktier.get(nummer);
       
        if (kurs * antal > minKonto.getBalance())
        {
            System.out.println("Så mange penge har du vist ikke...");
        }
        else if (antal < 0)
        {
            System.out.println("Du kan ikke købe et negativt antal aktier!");
        }
        else
        {
            minKonto.withdraw(antal*kurs);
            tempDepot.trade(antal);
        }
    }

''''''''''''''''''''''''''''''''''''

Det virker - bare ikke første gang den bliver kaldt. 2., 3. og 4. gang den bliver kaldt dukker den fint op forrest. Så det er bedre end før, men problemet er stadig ikke helt løst. hmmmm...
Avatar billede mpej Nybegynder
14. november 2003 - 11:43 #7
(den nederste metode er en del af af en større klasse)
Avatar billede mpej Nybegynder
07. marts 2004 - 11:19 #8
Jeg lukker spørgsmålet
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