Avatar billede aslan Nybegynder
08. maj 2002 - 22:43 Der er 8 kommentarer og
2 løsninger

Får fejl med Hastable

Jeg får denne fejl når jeg forsøger at proppe data fra en form i en Hashtable:

C:\Documents and Settings\aslan\Skrivebord\grænseflade2\OpretGaest.java:155: opretGæst(int,java.lang.String,java.lang.String,java.lang.String,int) in Gæst cannot be applied to (int,javax.swing.JTextField,javax.swing.JTextField,javax.swing.JTextField,javax.swing.JTextField)
              hentGæst.opretGæst(hentGæst.tællerAntalGæster(),forNavn,efterNavn,adresse,telefon);
                                  ^
1 error

Tool completed with exit code 1
-----------------------------------------------------

min classe:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
import java.text.*;


public class OpretGaest extends JFrame implements ActionListener
{



    boolean inAnApplet = true;
    final boolean shouldFill = true;
    final boolean shouldWeightX = true;
    JButton opret,søg,opdater,afslut;
    JTextField gæstNr,forNavn,efterNavn,adresse,telefon,idNr,firma,cvr,rabat;
    JComboBox IDtype;
    String betalingsFormer[] = {"Dankort","Kontant","Regning"};
    JRadioButton privatGæst,erhvervsGæst;

    Gæst hentGæst;

    public OpretGaest()throws IOException {

        Container contentPane = getContentPane();
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        contentPane.setLayout(gridbag);


        c.fill = GridBagConstraints.HORIZONTAL;



        JLabel skriv = new JLabel("Gæste Nr");
        c.insets = new Insets(0,0,0,0);
        c.gridx = 0;
        c.gridy = 0;
        gridbag.setConstraints(skriv, c);
        contentPane.add(skriv);



        JLabel skriv2 = new JLabel("Fornavn");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 1;
        gridbag.setConstraints(skriv2, c);
        contentPane.add(skriv2);



        JLabel skriv3 = new JLabel("Efternavn");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 2;
        gridbag.setConstraints(skriv3, c);
        contentPane.add(skriv3);


        JLabel skriv4 = new JLabel("Adresse");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 3;
        gridbag.setConstraints(skriv4, c);
        contentPane.add(skriv4);


        JLabel skriv5 = new JLabel("Telefon");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 4;
        gridbag.setConstraints(skriv5, c);
        contentPane.add(skriv5);


        gæstNr = new JTextField(10);
        c.insets = new Insets(0,20,0,0);
        c.gridx = 1;
        c.gridy = 0;
        gridbag.setConstraints(gæstNr, c);
        contentPane.add(gæstNr);
        gæstNr.addActionListener(this);

        forNavn = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 1;
        gridbag.setConstraints(forNavn, c);
        contentPane.add(forNavn);
        forNavn.addActionListener(this);

        efterNavn = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 2;
        gridbag.setConstraints(efterNavn, c);
        contentPane.add(efterNavn);
        efterNavn.addActionListener(this);


        adresse = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 3;
        gridbag.setConstraints(adresse, c);
        contentPane.add(adresse);
        adresse.addActionListener(this);

        telefon = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 4;
        gridbag.setConstraints(telefon, c);
        contentPane.add(telefon);
        telefon.addActionListener(this);

        opret = new JButton("Opret");
        c.insets = new Insets(0,300,0,0);
        c.gridx = 2;
        c.gridy = 0;
        gridbag.setConstraints(opret, c);
        contentPane.add(opret);
        opret.addActionListener(this);

        afslut = new JButton("Afslut");
        c.insets = new Insets(10,300,0,0);
        c.gridx = 2;
        c.gridy = 1;
        gridbag.setConstraints(afslut, c);
        contentPane.add(afslut);
        afslut.addActionListener(this);


        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                if (inAnApplet) {
                    dispose();
                } else {
                    System.exit(0);
                }
            }
        });
    }



    public void actionPerformed( ActionEvent e )
    {

          if( e.getSource() == opret );
          {
              hentGæst.opretGæst(hentGæst.tællerAntalGæster(),forNavn,efterNavn,adresse,telefon);

          }


    }


}
----------------------------------------------------

Metoden fra classen Gæst:

  void opretGæst(int antalGæster ,String fornavn,String efternavn,String adresse,int tlf)

  {


        Gæst g = new Gæst(antalGæster,fornavn,efternavn,adresse,tlf);

        if(gæsteRegistre.containsKey(fornavn+efternavn+adresse))

        {

      //  d.println("Samme gæst er allerede oprettet før");

        return;

      }

        else

        {

        gæsteRegistre.put(""+fornavn+efternavn+adresse,g);

      // d.println("Gæst oprettet");

      }

  }

Avatar billede erikjacobsen Ekspert
08. maj 2002 - 22:46 #1
Du skal lige pille teksten ud af din JTextField (fx. forNavn)
Avatar billede disky Nybegynder
08. maj 2002 - 22:46 #2
det er fordi du forsøger at kalde din metode med JTextField's istedet for Strings

Ret til
hentGæst.opretGæst(hentGæst.tællerAntalGæster(),forNavn.getText(),efterNavn.getText(),adresse.getText(),telefon.getText());
Avatar billede aslan Nybegynder
08. maj 2002 - 23:29 #3
Nu giver den fejl fordi den tror at TLF er en string og ikke int:

C:\Documents and Settings\aslan\Skrivebord\grænseflade2\OpretGaest.java:155: opretGæst(int,java.lang.String,java.lang.String,java.lang.String,int) in Gæst cannot be applied to (int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)
            hentGæst.opretGæst(hentGæst.tællerAntalGæster(),forNavn.getText(),efterNavn.getText(),adresse.getText(),telefon.getText());
                                ^
1 error

Tool completed with exit code 1
Avatar billede bearhugx Nybegynder
08. maj 2002 - 23:41 #4
til det kan du gøre følgende

hentGæst.opretGæst( hentGæst.tællerAntalGæster(),forNavn.getText(),efterNavn.getText(),adresse.getText(), new Integer( telefon.getText() ).intValue() );

/Søren
Avatar billede aslan Nybegynder
08. maj 2002 - 23:44 #5
tak:)
Avatar billede aslan Nybegynder
08. maj 2002 - 23:56 #6
kunne jeg også lige få svar på hvorfor det her giver fejl :

gæstNr.append(hentGæst.tællerAntalGæster());

i samme eksempel?
Avatar billede bearhugx Nybegynder
09. maj 2002 - 00:00 #7
fordi du ikke kan apppend'e i et JTextField -
Istedet er der metoden
  gæstNr.setText(hentGæst.tællerAntalGæster());
---
Jeg tror det er den, du er ude efter :-)

/Søren
Avatar billede bearhugx Nybegynder
09. maj 2002 - 00:02 #8
hvis du skal lave en egenlig appending (dvs. nuværende indhold + antalGæster), så skal du gøre følgende
  gæstNr.setText( gæstNr.getText()+hentGæst.tællerAntalGæster() );
istedet....
Avatar billede aslan Nybegynder
09. maj 2002 - 00:08 #9
tak igen
Avatar billede aslan Nybegynder
09. maj 2002 - 14:49 #10
ehm.. jeg får en NullPointerException i min actionPerformed() metode når jeg gerne vil bruge metoder fra andre classer? Jeg har forsøgt mig med Gæst hentGæst; for at skabe en objekt af classen!
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