Avatar billede gorlist Nybegynder
29. november 2001 - 15:07 Der er 9 kommentarer og
1 løsning

Mangler overblik over Java manøvrering

Jeg har tre klasser
*Kunde - nummer, navn, telefon
*KundeGUI - alle SWING attributter
*Kartotek - attribut ArrayList a;
Kartotek indeholder main()

main() kalder:
    Kartotek ka = new Kartotek();
    ArrayList a = ka.getarraylist();
        KundeGUI g = new KundeGUI(a); //sender ArrayList med.

------------------------------------------
public KundeGUI(ArrayList a) {
    super();
    try {
        /* Set JAVA look and feel */
        UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
        /* Create the frame */
        KundeGUI aKundeGUI = new KundeGUI();

        /* Calculate the screen size */
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

        /* Pack frame on the screen */
        aKundeGUI.pack();

        /* Center frame on the screen */
        Dimension frameSize = aKundeGUI.getSize();
        if (frameSize.height > screenSize.height)
                frameSize.height = screenSize.height;
        if (frameSize.width > screenSize.width)
                frameSize.width = screenSize.width;
        aKundeGUI.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);

        /* Add a windowListener for the windowClosedEvent */
        aKundeGUI.addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosed(java.awt.event.WindowEvent e) {
                System.exit(0);
            };
        });
        aKundeGUI.setVisible(true);
    } catch (Throwable exception) {
        System.err.println(\"Exception occurred in main() of KundeGUI\");
        exception.printStackTrace(System.out);
    }
}
-------------------------------------------
public KundeGUI() {
    super();
    initialize();
}
-------------------------------------------
Hvordan får jeg fat i den ArrayList i min SWING som er sendt med til KundeGUI?
Avatar billede disky Nybegynder
29. november 2001 - 15:10 #1
lav en

public List getList()
{
return a;
}

forudsat din List er defineret i klasse scope
Avatar billede gorlist Nybegynder
29. november 2001 - 15:13 #2
Bryder det ikke med begrebet om indkapsling? Hvis jeg allerede har sendt ArrayList med til KundeGUI, skal det så ikke været muligt at tage den direkte derfra?
Avatar billede disky Nybegynder
29. november 2001 - 15:15 #3
jo via en get metode.

hvis du erklærer den public, så begynder du at bryde med indkapsling.

Brug altid get/set metoder til at hente og sette ting med. Det er den korrekte måde at gøre tingene på
Avatar billede gorlist Nybegynder
29. november 2001 - 15:21 #4
I min class Kartotek:
   
        public ArrayList getarraylist() {
        return a;
        }

    public void setarraylist(ArrayList al){
        this.a=al;
        }
------------------------------------------
Er det dem jeg skal tilgå fra andre klasser? Hvordan?
Antag at jeg fra KundeGUI ønsker at hente ArrayList a:

Er det så pkundeGUI.KundeGUI.getarraylist()?
(KundeGUI ligger i pkundeGUI).
Avatar billede disky Nybegynder
29. november 2001 - 15:32 #5
Hvis dit objekt af typen KundeGUI hedder gui, så skriver du ArrayList list=gui.getarraylist();
Avatar billede gorlist Nybegynder
29. november 2001 - 15:58 #6
Jeg har constructed et object i Kartotek af typen kartotek som indeholder attributten ArrayList a med getarraylist() og setarraylist():

public static void main(java.lang.String[] args) {    pkartotek.Kartotek ka = new pkartotek.Kartotek();}

Fra en pKundeGUI.kundeGUI ønsker jeg at få fat på ArrayList a i Kartotek ka.

Skal jeg så bare skrive Arraylist al = pkartotek.Kartotek.getarraylist(); ?
Avatar billede gorlist Nybegynder
29. november 2001 - 16:00 #7
Hvis jeg gør det giver det fejlen:
Cannot make a static reference to the instance method named getarraylist for class pkartotek.Kartotek with arguments ()
Avatar billede erikjacobsen Ekspert
29. november 2001 - 16:22 #8
Hvad vil gøre, gorlist, når du en dag vil ændre den interne repræsentation fra
en List til måske en database?

Du bør gemme din List, og have public metoder, der hedder (måske)
hentNæste() og hentForrige() --- eller hvad det nu er du skal...
Avatar billede gorlist Nybegynder
29. november 2001 - 17:11 #9
Hej Erik.

Måske det var en ide at lave det til en linkedlist?

Hvor skal listen gemmes? I en fil?

Jeg synes stadig ikke at jeg kan se hvordan jeg skal få fat i en evt. linkedlist fra en anden class.
Avatar billede erikjacobsen Ekspert
29. november 2001 - 22:00 #10
Listen skal ikke gemmes på en fil. Listen skal \"gemmes\" som en privat attribut.

Du skal ikke have fat i din linkedlist - eller hvad du vælger - men lave passende
metoder, så du kan udskifte din linkedlist med noget andet.
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