Avatar billede changelevel Nybegynder
01. februar 2012 - 21:03 Der er 49 kommentarer og
1 løsning

Logisk regne logik

public String vælgMenu(int valg){

        String res = "";

    for (int i = 0; i < menuList.size(); i++) {
        if(valg == menuList.get(i).getNr()){               
            res = res + menuList.get(i).toString();
                System.out.println(res);
            }
            sumPris += sum + valg;
        }
        return res;
    }


hvis nu jeg vil have den ovenståede metode til at kunne indtage antal af bestemt menuer, hvordan skal jeg kode det? f.eks. i:
public static void main(String[] args) {
    KasseApparat k = new KasseApparat();       
        k.vælgMenu(2*24);

når jeg har skrvet i parameter 2*24, vil jeg gerne have at den
lægger 2 gange af 24's priser sammen.

Håber de forstår hvad jeg mener?

}
Avatar billede arne_v Ekspert
01. februar 2012 - 21:45 #1
send antal med over som argument nummer 2 og gang med det

k.vælgMenu(24, 2);

public String vælgMenu(int valg, int antal){
Avatar billede changelevel Nybegynder
01. februar 2012 - 21:57 #2
okay? så den kan ikke indlæser gange tegn`?
Avatar billede arne_v Ekspert
01. februar 2012 - 22:02 #3
Jo men du vil vel ikke lede efter nummer 48 ???
Avatar billede changelevel Nybegynder
01. februar 2012 - 22:18 #4
nej desværre....

jeg gerne den skal hente 2 gange af nr 24, og ikke nr 48..

indtilvidere regne programmet sum af 2*24, men det vil jeg ikke have,... jeg vil har 2 stk af nr 24...

dvs. hvis 24 består af kylling, så jeg vil have 2 gange af kylling..
Avatar billede arne_v Ekspert
01. februar 2012 - 22:28 #5
derfor du skal have 2 argumenter til metoden
Avatar billede changelevel Nybegynder
01. februar 2012 - 22:39 #6
jeg er forelsker i '*' tegnet...... så det andet kan ikke lade sig gøre?
Avatar billede arne_v Ekspert
01. februar 2012 - 22:44 #7
Du skal sende to separate argumenter me dover.

Og saa skal du gange inden i metoden !

Saa du faar dit gange tegn alligevel!
Avatar billede changelevel Nybegynder
02. februar 2012 - 00:48 #8
Ok, nu kan jeg skriver:
KasseApparat k = new KasseApparat();       
        k.vælgMenu(2,24);

og får 2 * Suppe á 35.0 kr.

men hvordan erstatter jeg så med 2,4 med 2*4??
forstod ikke helt hvad du ment før :D



public String vælgMenu(int antal, int valg){

    String res = "";   

    for (int i = 0; i < menuList.size(); i++) {


        if(valg ==  menuList.get(i).getNr()){

            menuList.get(i).setAntal(antal);
            res += menuList.get(i).toString();
            sum += menuList.get(i).getPris()*antal;
            }
        }                               
        System.out.println(res);
        return res;
    }
Avatar billede arne_v Ekspert
02. februar 2012 - 01:12 #9
Jeg tror at du har gjort det rigtigt.

Det jeg snakkede om var at du skal have gange her:

sum += menuList.get(i).getPris()*antal;
Avatar billede changelevel Nybegynder
02. februar 2012 - 01:31 #10
Okay. så den gang tegn, som jeg savner, kan det ikke lade sig gøre??

i stedet for 2,4  så kan man skrive 2*4?
Avatar billede arne_v Ekspert
02. februar 2012 - 01:36 #11
Nej.
Avatar billede changelevel Nybegynder
02. februar 2012 - 01:46 #12
hhhhmmmmm.. heller ikke hvis man combinere det med char[] = x?
Avatar billede arne_v Ekspert
02. februar 2012 - 01:53 #13
du kunne sende en streng med over og saa parse den, men det er langt paenere med de to argumenter
Avatar billede changelevel Nybegynder
02. februar 2012 - 11:08 #14
Hej, en helt spørgsmål.. hvordan skifter jeg skriftyper i tostirng metode??
Avatar billede MADOlsen Forsker
02. februar 2012 - 11:30 #15
#14 Skrifttyper?? En string har ikke nogen skrifttype...
Avatar billede changelevel Nybegynder
02. februar 2012 - 12:09 #16
jeg mener selve teksten? feks.    System.out.println("Hej verden");

kan jeg ikke skifte skrifttype i "hej verden"?,

eller skal jeg skrive det i word, også copy paster i programmet??
Avatar billede changelevel Nybegynder
02. februar 2012 - 12:46 #17
Det man måske slet ikke lade sig gøre?
Avatar billede arne_v Ekspert
02. februar 2012 - 15:23 #18
Nej.

En string har ikke nogen skrift type.

Og for console (System.out er console) vaelger du skrifttype for hele consollen.

Hvis du skifter fra consol til GUI kan du eksperimentere med skrifttyper, stoerelse og farver!
Avatar billede changelevel Nybegynder
03. februar 2012 - 00:58 #19
hej, jeg er igang med at programmere en kasseapparat for sjov.

har combinere det med gui, men jeg savner en metode.

vil hoere om det kan lade goere: i stedet for skal man bruge mus

klikke på de enkelt Jbutton knapper, så vil jeg gerne bruge

tastatur til det? f.esk i stedet for klikke på button klapper så

trykker jeg på tastaturet?


Håber de forstår hvad jeg mener?
Avatar billede arne_v Ekspert
03. februar 2012 - 01:06 #20
Du kan sagtens laese keystroke i en Swing app.
Avatar billede arne_v Ekspert
03. februar 2012 - 01:07 #21
Tilfoej en KeyListner
Avatar billede changelevel Nybegynder
03. februar 2012 - 01:34 #22
hhhmmm  lyder da meget besvær...
Avatar billede changelevel Nybegynder
03. februar 2012 - 01:35 #23
hvad skal jeg implemtere?
Avatar billede changelevel Nybegynder
03. februar 2012 - 01:38 #24
vil gerne have bruge tastaturet enter knapper i stedet for man går hen og trykker mussen?
Avatar billede changelevel Nybegynder
03. februar 2012 - 01:48 #25
tror jeg har fundet noget...

men hvad er forskellen mellem

keyReleased()
                 
keyPressed()
                                keyTyped()
Avatar billede changelevel Nybegynder
03. februar 2012 - 01:54 #26
hvilken af dem skal jeg bruge?
Avatar billede arne_v Ekspert
03. februar 2012 - 02:29 #27
du skal bruge keyTyped naar du bare skal vide at der er tastet noget

men keyPressd og keyReleased naar du skal vide hvornaar tasten trykked ned og hvornaar den slippes igen
Avatar billede arne_v Ekspert
03. februar 2012 - 03:52 #28
demo:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class BtnAndKbd extends JFrame  {
    private JTextField tf;
    public BtnAndKbd() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new BorderLayout());
        setTitle("Button *and* keyboard");
        tf = new JTextField("");
        getContentPane().add(tf, BorderLayout.NORTH);
        JPanel p = new JPanel();
        p.setLayout(new GridLayout(3, 4));
        for(int i = 0; i < 10; i++) {
            final int val = i;
            JButton btn = new JButton("#" + val);
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    tf.setText(tf.getText() + val);
                }
            });
            p.add(btn);
        }
        getContentPane().add(p, BorderLayout.CENTER);
        this.addKeyListener(new KeyListener() {
            public void keyPressed(KeyEvent ev) {
                // nothing
            }
            public void keyReleased(KeyEvent ev) {
                // nothing
            }
            public void keyTyped(KeyEvent ev) {
                tf.setText(tf.getText() + ev.getKeyChar());
            }
        });
        setPreferredSize(new Dimension(300, 200));
        pack();
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame f = new BtnAndKbd();
                f.setVisible(true);
            }
        });
    }
}
Avatar billede arne_v Ekspert
03. februar 2012 - 03:53 #29
Bemaerk at ovenstaaende kode kraever at man er i textfield naar man skal bruge keyboard.
Avatar billede changelevel Nybegynder
03. februar 2012 - 11:21 #30
hhmm,, skal main ogsaa vaere i selve textfield?
Avatar billede changelevel Nybegynder
03. februar 2012 - 11:28 #31
det gaar alt...faar masse af expetion  :(
Avatar billede changelevel Nybegynder
04. februar 2012 - 00:50 #32
nogle her kan fortaelle mig hvad der er galt her?

manger jeg noget her?


public void keyTyped(java.awt.event.KeyEvent e) {
                           
if (e.getKeyCode() == KeyEvent.VK_ENTER) {

label.setText("Test");

    guiMenu.setVisible(true);
                }
public void keyPressed(java.awt.event.KeyEvent e) {
                }
public void keyReleased(java.awt.event.KeyEvent e) {
                }
            });
        }
        return Bord1;
    }
Avatar billede arne_v Ekspert
04. februar 2012 - 01:19 #33
Hvilken fejl faar du og hvordan ser den omkringliggende kode ud?
Avatar billede changelevel Nybegynder
04. februar 2012 - 21:24 #34
jeg får ingen fejl beskrivelse.. den virker bare ikke udmiddelbart.

jeg har lavet den i en klasse med de andre labels og buttons, alså i gui-klassen?


public void keyTyped(KeyEvent e) {
       
        int keyCode = e.getKeyCode();
        if (keyCode == KeyEvent.VK_ENTER) {
           
            label.setText("Test");
            guiMenu.setVisible(true);
            System.out.println("hej");
    }
    else {
        KeyEvent.getKeyText(keyCode);
        e.consume();
    }
//   
    }
    public void keyPressed(java.awt.event.KeyEvent e) {           
        e.consume();
    }
               
    public void keyReleased(java.awt.event.KeyEvent e) {   
    e.consume();
   
    };
   
}
Avatar billede changelevel Nybegynder
04. februar 2012 - 21:51 #35
alså programmet reagere ikke noget når jeg trykker på enter-knappeen...


irriterende.............:D
Avatar billede arne_v Ekspert
05. februar 2012 - 00:20 #36
hvor kalder du addKeyListener ?
Avatar billede changelevel Nybegynder
05. februar 2012 - 00:48 #37
public Gui() {
        super();

        addKeyListener(this);   
           
    }

det har jeg gjordt i construktoer.??
Avatar billede changelevel Nybegynder
05. februar 2012 - 01:03 #38
er det forkert?
Avatar billede arne_v Ekspert
05. februar 2012 - 01:33 #39
nej - det er OK
Avatar billede arne_v Ekspert
05. februar 2012 - 01:34 #40
og du kan ikke faa det virke ved at saette fokus forskellige steder?
Avatar billede changelevel Nybegynder
05. februar 2012 - 03:10 #41
har nu prøvet flere steder, men virker bare ikke....

jeg ved ikke hvad der er galt...
Avatar billede arne_v Ekspert
05. februar 2012 - 04:05 #42
virker mit eksempel hos dig?
Avatar billede changelevel Nybegynder
05. februar 2012 - 11:13 #43
desvaerre :(
Avatar billede changelevel Nybegynder
05. februar 2012 - 15:05 #44
Kan de fortaelle mig hvad der er galt med den boolean?

den udskriver nummerfindes ikke uanset om nummer findes eller ikke findes,, den udskriver hverdag når jeg kører programmet??

hvis valg != drikkesnr, så skal udskriver nummer findes ikke. men det gør den bare ikke?




public synchronized String vælgDrikkeVarer(int antal, int valg){

        String res = "";
        boolean rigtigNr = false;
        for (int i = 0; i < drikkeList.size(); i++) {

    if(valg == drikkeList.get(i).getNr()){   
    drikkeList.get(i).setAntal(antal);
    res = res + drikkeList.get(i).toString();
        sum += drikkeList.get(i).getPris() * antal;
        rigtigNr = true;
                }
    else if(valg != drikkeList.get(i).getNr()){
        rigtigNr = false;
                }       
            }
    if(rigtigNr == false){
      System.out.println("nummer findes ikke");
    }
               
        return res;
    }
Avatar billede arne_v Ekspert
06. februar 2012 - 04:32 #45
Jeg tror ikke at:

  else if(valg != drikkeList.get(i).getNr()){
        rigtigNr = false;
                }   

skal vaere der.

proev og overvej situationen:

ikke match
match
ikke match
Avatar billede changelevel Nybegynder
03. juni 2012 - 14:50 #46
Mange tak
Avatar billede changelevel Nybegynder
03. juni 2012 - 14:51 #47
Mange tak
Avatar billede arne_v Ekspert
03. juni 2012 - 15:10 #48
saa tak men ingen point
Avatar billede changelevel Nybegynder
03. juni 2012 - 15:51 #49
:(  det var sgu ikke menning..hhmm,, måske har jeg gjordt det forkert? ?

hvordan pointgiver jeg?
Avatar billede arne_v Ekspert
04. juni 2012 - 00:02 #50
spoergsmaalet er lukket nu

proceduren i http://www.eksperten.dk/faq#faq-5-3 er blevet brugt i lignende situationer
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