Ik ben met bluej een frisdrank machine aan het maken. We moeten daarbij object georienteed te werk gaan. Nu heb ik een Jpanel en een mooie goed werkende GUI. En ik heb een klasse "Drankje" met naam en prijs als attributen.
Ik had eerst een derde attribuut; aantal. Maar dat werd niet goedgekeurd. Ik moest een aparte klasse maken voor de vooraad. Ik knipte met mn vingers en zei; Zo gezegd Zo gedaan! Ik maakte een voorraad klasse.
In de Jpanel gebruik ik de constructor van de klasse Drankje en maak ik 5 drankjes aan. Daarna maak ik een voorraad object aan en stop ik er een drankje in met een integer voor de aantal. In de voorraad klasse maak ik een arraylist aan waarin alle drankjes worden opgeborgen, so far so good. Maar dan moet ik een int array maken met informatie over de hoeveelheid drankjes; aantal.
Maar potverdriedubbels, wat haat ik arrays en arraylisten in java. Geef mij maar C en C++
Het is mijn idee om in de Jpanel een functie aan te roepen, met als argument één van de vijf drankjes om vervolgens informatie te krijgen van de integer array in de voorraad klasse. Probleem 1: Als ik eenmaal in de functie zit, met een Drankje als argument moet ik uit die arraylist met 5 drankjes de index ophalen, zodat ik de aantal waarde uit het integer array kan vissen
de functie getAantal
Ik kan wss wel de naam 'get'en van het drankje argument en dan in een for-loop alle String namen met mekaar gaan vergelijken, maar ik wel een beetje een knap programma Ik wil gewoon de index weten.
Dan heb ik nog een ander vraagje over arraylist. Ik heb voor de frisdrank machine een paar knopjes en 2 textbalken. In de code moet ik met elke knop (knop1, knop2 etc) ZES dingen doen, dat is veel tik werk, mn code word lang in andere woorden. Ik wil een for-loop implementeren.
Maarrr....
Nu compileert dit wel goed, dus ik doe schijnbaar toch iets goed alleen als ik ipv
probeer, dan wordt mijn compiler boos op me en zegt: "array required, but java.util.ArayList<javax.swing.JButton> found"
En ik begrijpt rare java taal en foutmeldings slecht
Ik had eerst een derde attribuut; aantal. Maar dat werd niet goedgekeurd. Ik moest een aparte klasse maken voor de vooraad. Ik knipte met mn vingers en zei; Zo gezegd Zo gedaan! Ik maakte een voorraad klasse.
In de Jpanel gebruik ik de constructor van de klasse Drankje en maak ik 5 drankjes aan. Daarna maak ik een voorraad object aan en stop ik er een drankje in met een integer voor de aantal. In de voorraad klasse maak ik een arraylist aan waarin alle drankjes worden opgeborgen, so far so good. Maar dan moet ik een int array maken met informatie over de hoeveelheid drankjes; aantal.
Maar potverdriedubbels, wat haat ik arrays en arraylisten in java. Geef mij maar C en C++
Het is mijn idee om in de Jpanel een functie aan te roepen, met als argument één van de vijf drankjes om vervolgens informatie te krijgen van de integer array in de voorraad klasse. Probleem 1: Als ik eenmaal in de functie zit, met een Drankje als argument moet ik uit die arraylist met 5 drankjes de index ophalen, zodat ik de aantal waarde uit het integer array kan vissen
Code:
private Drankje cola = new Drankje("Cola", 1.1); // maak 5 drankjes aan
private Drankje sinas = new Drankje("Sinas", 1.2);
private Drankje sprite = new Drankje("Sprite", 1.3);
private Drankje cassis = new Drankje("Cassis", 1.4);
private Drankje bitter_lemon = new Drankje("Bitter Lemon", 1.5);
private Voorraad voorraad = new Voorraad(cola, 15); // maak voorraad aan en stop er 1 drankje in
private double saldo, wisselgeld;
public TekstvakEnKnopPaneel() {
setLayout( null );
setBackground(Color.CYAN);
voorraad.addDrankje(sinas, 15); // stop nog 4 soorten drankjes in de voorraad
voorraad.addDrankje(sprite, 15); // het gaat om de functie getAantal
voorraad.addDrankje(cassis, 15);
voorraad.addDrankje(bitter_lemon, 15);
de functie getAantal
Code:
public class Voorraad
{
// instance variables - replace the example below with your own
private ArrayList<Drankje> lijst;
private int index;
private int aantal[];
public Voorraad(Drankje d, int a)
{
lijst = new ArrayList<Drankje>(); //initialisee arraylist
lijst.add(d); // stop drankje in arraylost
aantal = new int[5]; // maak integer array
aantal[0] = 10; // vul het array met waarde 10
aantal[1] = 10; // ( voor test doeleind)
aantal[2] = 10;
aantal[3] = 10;
aantal[4] = 10;
}
public void addDrankje(Drankje d, int a)
{
lijst.add(d); // voegt drankje toe aan arraylist
// ook hier wil ik de index weten van drankje d in de lijst
}
public int getAantal(Drankje d)
{
index = lijst.get(); // <-- hoe krijg ik indexwaarde van de arraylist
// ???????? als ik dus deze functie aanroep met bijvoorbeeld het drankje
int waarde = aantal[index]; // cola, hoe krijg ik de index waarde van
return waarde; // het array terug van cola?
}
}
Dan heb ik nog een ander vraagje over arraylist. Ik heb voor de frisdrank machine een paar knopjes en 2 textbalken. In de code moet ik met elke knop (knop1, knop2 etc) ZES dingen doen, dat is veel tik werk, mn code word lang in andere woorden. Ik wil een for-loop implementeren.
Code:
knop1 = new JButton(cola.getNaam());
knop1.setBounds(160,70,120,30);
knop1.setBackground(Color.RED);
knop1.setForeground(Color.WHITE);
knop1.addActionListener(new KnopHandler());
add(knop1);
// ik heb geprobeerd
private ArrayList<JButton> lijst2;
etc etc
lijst2 = new ArrayList<JButton>();
lijst2.add(knop1);
lijst2.add(knop2);
lijst2.add(knop3);
lijst2.add(knop4);
lijst2.add(knop5);
Nu compileert dit wel goed, dus ik doe schijnbaar toch iets goed alleen als ik ipv
Code:
knop1 = new JButton(cola.getNaam());
Code:
lijst2[0] = new JButton(cola.getNaam());
En ik begrijpt rare java taal en foutmeldings slecht