Avatar billede chr.kj Nybegynder
10. december 2007 - 12:37 Der er 1 løsning

Problem med hent og indsæt i felter fra ArrayList

Hej.

Jeg er løbet ind i et problem.

Jeg harn oprettet nogle klasser jeg har kaldt for Lokale, Kontor, Toilet og Mødelokale.

Jeg har indtastet de fælles træk for alle lokalerne i klassen Lokale dvs. lokaleNummer, antalKvadratmeter og lokaletype (som er en ComboBox).

I mine andre klasser har jeg lavet arv af klassen Lokale.

Jeg indsætter variablerne for de forskellige lokaler i en jList på denne måde:

Object obj = jComboBoxLokaleType.getSelectedItem();
        if ( obj == "Toilet" ) {
           
            Toilet wc = new Toilet();
           
            wc.setLokaleNummer( Integer.parseInt( jTextFieldLokaleNummer.getText() ));
            wc.setAntalKvadratmeter( Float.parseFloat( jTextFieldAntalKvadratmeter.getText() ));
            //wc.setAntalArbejdspladser( Integer.parseInt( jTextFieldAntalArbejdspladser.getText() ));
            wc.setLokaleType( (String) jComboBoxLokaleType.getSelectedItem() );
            wc.setAntalKummer( Integer.parseInt( jTextFieldAntalKummer.getText() ));
            wc.setAntalToiletter( Integer.parseInt( jTextFieldAntalToiletter.getText() ));
            wc.setHerreEllerDamer( (String) jComboBoxHerreEllerDamer.getSelectedItem() );
           
            lokaler.add( wc );
            jListResultat.setListData( lokaler.toArray() );
           
            } else if ( obj == "Kontor" ) {
           
            Kontor kontorer = new Kontor();
           
            kontorer.setLokaleNummer( Integer.parseInt( jTextFieldLokaleNummer.getText() ));
            kontorer.setAntalKvadratmeter( Float.parseFloat( jTextFieldAntalKvadratmeter.getText() ));
            kontorer.setAntalArbejdspladser( Integer.parseInt( jTextFieldAntalArbejdspladser.getText() ));
            kontorer.setLokaleType( (String) jComboBoxLokaleType.getSelectedItem() );
           
            lokaler.add( kontorer );
            jListResultat.setListData( lokaler.toArray() );

Det fungere også fint og virker efter hensigten.

Jeg vil så gerne kunne rette i de allerede indtastede variabler. Det skal gøres ved at jeg klikker, ved hjælp af private void jListResultatMouseClicked(java.awt.event.MouseEvent evt), på det objekt jeg vil have rettet. Når jeg har klikket på objektet skal de forskellige variabler så indsættes i de korrekte felter i min GUI f.eks. skal tallet fra antalPladser indsættes i feltet antalpladser osv. osv.

Jeg har forsøgt at lave det på følgende måde (herunder et eksempel) :

  private void jListResultatMouseClicked(java.awt.event.MouseEvent evt) {                                         
// TODO add your handling code here:       
       
       
        Object obj = jComboBoxLokaleType.getSelectedItem();
        if ( obj == "Toilet" ) {
        Lokale lokaler = null;
       
        lokaler = (Lokale) jListResultat.getSelectedValue();                               
       
        jTextFieldLokaleNummer.setText(String.valueOf(lokaler.getLokaleNummer() )); 
        jTextFieldAntalKvadratmeter.setText( String.valueOf(lokaler.getAntalKvadratmeter() ));
        jComboBoxLokaleType.setSelectedItem(lokaler.getLokaleType() );
       
        } else if ( obj == "Kontor" ) {
           
            Kontor lokaler = null;
       
       
        jTextFieldAntalArbejdspladser.setText( String.valueOf( lokaler.getAntalArbejdspladser() ));
       
        } else if ( obj == "Mødelokale" ) {
           
            Mødelokale lokaler = null;
           
        jTextFieldAntalPladser.setText( String.valueOf( lokaler.getAntalPladser() ));       
        }

Der sker ikke noget når jeg klikker med musen?

Jeg har også forsøgt med en anden måde (igen et eksempel):

  private void jListResultatMouseClicked(java.awt.event.MouseEvent evt) {                                         
// TODO add your handling code here:       
       
       
        Lokale lokaler = null;
       
        lokaler = (Lokale) jListResultat.getSelectedValue();                               
       
        jTextFieldLokaleNummer.setText(String.valueOf(lokaler.getLokaleNummer() )); 
        jTextFieldAntalKvadratmeter.setText( String.valueOf(lokaler.getAntalKvadratmeter() ));
        jComboBoxLokaleType.setSelectedItem(lokaler.getLokaleType() );
               
       
        jTextFieldAntalArbejdspladser.setText( String.valueOf( lokaler.getAntalArbejdspladser() ));
       
Det virker egentlig også fint nok indtil jeg når til jTextFieldAntalArbejdspladser.setText( String.valueOf( lokaler.getAntalArbejdspladser() )); Her får jeg at vide at variablen ikke findes og jeg har fundet ud af at det er fordi den kigger i min Lokale klasse som jeg refererer til ved hjælp af Lokale lokaler = null; - Mit spørgsmål lyder så på, hvordan gør jeg så jeg også kan kigge i min Kontor, Toilet og Mødelokale klasse og kan det overhovedet lade sig gøre?

Hvis I kan komme med nogle eksempler eller forslag til hvordan jeg kan løse mit problem ville det være perfekt.

På forhånd tak.
Avatar billede chr.kj Nybegynder
10. december 2007 - 22:39 #1
Fik selv lavet en løsning.. Ikke særlig pæn, men det virker da.
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