Avatar billede thomasskov Nybegynder
11. februar 2002 - 17:39 Der er 3 kommentarer og
2 løsninger

udskriv ved "Submit" hvad der blev skrevet i tekstfelt

Jeg er ved at lave et program hvor det skal være muligt at skrive sit navn (eller andet) i et formularfelt.
Når man derefter trykker på "submit" skal dette navn udskrives på under formularfelterne i et textarea.
Problemet er at navnet gemmes i en variabel som ikke fornyes når der trykkes på submit.
Altså er det i øjeblikket sådan at ligemeget hvad man skriver i form-feltet skrives der kun den først gemte variable ud når man trykker på submit.

Her er et eksempel:

import java.awt.*;
import java.awt.event.*;

class Gui extends Frame implements ActionListener
{
String navn;
int alder;
Button submitButton, resetButton, closeButton;
TextArea output;
String sname;

public Gui()
{
    this.navn=navn;
    this.alder=alder;
        Panel p = new Panel();
        TextField navne = new TextField "eksempelNavn",20); //Dette er hvad der udskrives år der trykkes på submit "eksempelnavn".
        p.add (new Label ("Navn");
        p.add(navne);
        sname = navne.getText();

TextField age = new TextField ("",5);
    p.add (new Label ("Age"));
    p.add(age);

    submitButton = new Button("Submit");
                submitButton.addActionListener(this);
        p.add(submitButton);

    resetButton = new Button("Reset");
            resetButton.addActionListener(this);
    p.add(resetButton);

    closeButton = new Button("Close");
                closeButton.addActionListener(this);
    p.add(closeButton);

    output = new TextArea(24, 40);
    p.add(output);

    add(p);

    setTitle ("Thomas' grafik-program");
    setSize (750,500);
    setBackground(Color.green);
    addWindowListener(new WindowAdapter ()
    {
    public void windowClosing(WindowEvent e)
    {
        System.exit(0);
    }
        });
    setVisible (true);
}

public void actionPerformed(ActionEvent e)
{
    if (e.getSource() == submitButton)
    {
        println(sname);
    }
    else
    if (e.getSource() == resetButton)
    {
    }
    else
    if (e.getSource() == closeButton)
    {
        setVisible(false);
        dispose();
        System.exit(0);
    }
}

public void println (String s)
{
    output.append(s+"\n");
}
}
Avatar billede mosquito Nybegynder
11. februar 2002 - 18:06 #1
mener det er noget med setText() og getText()
Avatar billede disky Nybegynder
11. februar 2002 - 18:11 #2
ret:

if (e.getSource() == submitButton)
    {
        println(sname);
    }


til:
if (e.getSource() == submitButton)
    {
        sname = navne.getText();
        println(sname);
    }


Problemmet er din sname kun bliver sat i din constructor.
Avatar billede thomasskov Nybegynder
11. februar 2002 - 18:30 #3
Jeg har faktisk prøvet det tidligere og fik samme fejlmeddelelse. Ved ikke helt hvad jeg så gør ved den.

Gui.java:64: cannot resolve symbol
symbol  : variable navne 
location: class Gui
            sname = navne.getText();
                                ^
Gui.java:86: cannot resolve symbol
symbol  : variable navne 
location: class Gui
        String navn = navne.getText();
                          ^
2 errors

Tool completed with exit code 1
Avatar billede thomasskov Nybegynder
11. februar 2002 - 18:31 #4
Glem ovenstående.
Kun én fejl:

Gui.java:64: cannot resolve symbol
symbol  : variable navne 
location: class Gui
            sname = navne.getText();
                                ^
1 error

Tool completed with exit code 1
Avatar billede thomasskov Nybegynder
11. februar 2002 - 19:45 #5
Nu har jeg endelig fundet ud af det. Logisk nok når man tænker over det, men......
1. Jeg fulgte rådet fra "disky"
2. Jeg tilføjede:
  TextField navne;
  til variable i starten.
OG
3. Jeg ændrede:
  TextField navne = new TextField ("eksempelNavn",20);
  Til:
  navne = new TextField ("eksempelNavn",20);
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