/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
? Få tekst i TextField
Fra : Birgitte Lauge Eggel~


Dato : 07-01-02 07:55

Hej Alle,
Jeg sidder med en opgave (jeg læser datanombasis på Fuga), som jeg er kørt
lidt fast i. Jeg ville være meget glad for hjælp. Nedenstående følger
opgaven.
Mit problem er her, at jeg ikke kan få resultatet af omregningen
celsius-fahrenheit op i fahrenheit området. Altså, når programmet har
omregnet celsius til fahrenheit, vises resultatet ned i showStatus-linjen.
Det har jeg sat sådan nu, blot for at se resultatet overhovedet. .
Hvordan gør jeg det? Tusind tak for hjælp.
Hilsen
Birgitte

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Opg623YY extends JApplet implements ActionListener
{
JLabel celsiusLabel, fahrenheitLabel;
JTextField celsiusInput, fahrenheitInput;
public void init ()
{
celsiusLabel = new JLabel ("Celsius: ");
fahrenheitLabel= new JLabel ("Fahrenheit: ");
celsiusInput = new JTextField (4);
fahrenheitInput=new JTextField (4);

celsiusInput.addActionListener (this);
fahrenheitInput.addActionListener (this);

Container c = getContentPane ();
c.setLayout (new FlowLayout () );

c.add (celsiusLabel);
c.add (celsiusInput);
c.add (fahrenheitLabel);
c.add (fahrenheitInput);
}
public void actionPerformed (ActionEvent e)
{
double fahrenheitNumber = Double.parseDouble ( e.getActionCommand() );
double celsiusNumber = Double.parseDouble (e.getActionCommand () );

if (e.getSource () == celsiusInput){
fahrenheitNumber = 9.0 / 5.0 * (celsiusNumber+32);
showStatus ( "Celsius to Fahrenheit: " +
fahrenheitNumber );
celsiusInput.setText ("");

if (e.getSource () == fahrenheitInput){
celsiusNumber = 5.0 / 9.0 * (fahrenheitNumber-32);
showStatus ("Fahrenheit to Celsius " +
celsiusNumber);}
fahrenheitInput.setText ("");
}
}



 
 
Lars Dam (07-01-2002)
Kommentar
Fra : Lars Dam


Dato : 07-01-02 09:08

On Mon, 7 Jan 2002 07:54:50 +0100, "Birgitte Lauge Eggeling"
<BLaugeEggeling@t-online.de> wrote:

>Hvordan gør jeg det? Tusind tak for hjælp.
>Hilsen
>Birgitte
>
> }
> public void actionPerformed (ActionEvent e)
> {
>double fahrenheitNumber = Double.parseDouble ( e.getActionCommand() );
>double celsiusNumber = Double.parseDouble (e.getActionCommand () );

Du laver en getActionCommand() på din action event. getActionCommand()
er _ikke_ det samme som getText() - check api doc'en.

actioncommand tingen bruges til at finde ud af _hvilken kommando_ der
skal udføres; hvorefter man bruger andre metoder til at indhente data
omkring det der skal udføres.

Prøv istedet:

>if (e.getSource () == celsiusInput){

double celsiusNumber = Double.parseDouble (celsiusinput..getText() );
double fahrenheitNumber = 9.0 / 5.0 * (celsiusNumber+32);

> showStatus ( "Celsius to Fahrenheit: " +
> fahrenheitNumber );
> celsiusInput.setText ("");
>
>if (e.getSource () == fahrenheitInput){

double fahrenheitNumber = Double.parseDouble
(fahrenheitinput.getText() );
double celsiusNumber = 5.0 / 9.0 * (fahrenheitNumber-32);

> showStatus ("Fahrenheit to Celsius " +
> celsiusNumber);}
> fahrenheitInput.setText ("");
> }
>}
>


vh. ld


Birgitte Lauge Eggel~ (07-01-2002)
Kommentar
Fra : Birgitte Lauge Eggel~


Dato : 07-01-02 09:41

hej Lars igen,
tak for svaret - Jeg kan godt se, hvad du mener. Jeg har ikke fået det til
at fungere endnu med "setText", men jeg arbejder videre med det.
Hilsen
Birgitte


"> Prøv istedet:
>
> >if (e.getSource () == celsiusInput){
>
> double celsiusNumber = Double.parseDouble (celsiusinput..getText() );
> double fahrenheitNumber = 9.0 / 5.0 * (celsiusNumber+32);
>
> > showStatus ( "Celsius to Fahrenheit: " +
> > fahrenheitNumber );
> > celsiusInput.setText ("");
> >
> >if (e.getSource () == fahrenheitInput){
>
> double fahrenheitNumber = Double.parseDouble
> (fahrenheitinput.getText() );
> double celsiusNumber = 5.0 / 9.0 * (fahrenheitNumber-32);
>>



Ulrik Magnusson (07-01-2002)
Kommentar
Fra : Ulrik Magnusson


Dato : 07-01-02 23:03



Birgitte Lauge Eggeling wrote:

> Mit problem er her, at jeg ikke kan få resultatet af omregningen
> celsius-fahrenheit op i fahrenheit området.

[snip]

> if (e.getSource () == celsiusInput){
> fahrenheitNumber = 9.0 / 5.0 * (celsiusNumber+32);
> showStatus ( "Celsius to Fahrenheit: " +
> fahrenheitNumber );
> celsiusInput.setText ("");

Herover vil du sikkert i stedet sige:
fahrenheitInput.setText (""+fahrenheitNumber);

>
> if (e.getSource () == fahrenheitInput){
> celsiusNumber = 5.0 / 9.0 * (fahrenheitNumber-32);
> showStatus ("Fahrenheit to Celsius " +
> celsiusNumber);}
> fahrenheitInput.setText ("");

og tilsvarende herover:
celsiusInput.setText (""+celsiusNumber);

> }
> }

Læg mærke til at TextField.setText tager et String objekt
som argument - et sådant kan du lave en double til ved
at 'lægge det til' en tom streng som ovenfor. Du kan også
bruge Double.toString() metoden. showStatus() fungerer
fint, da du 'lægger tallet til' strengen "Fahrenheit to Celsius ".

(se også tråden "et spørgsmål om this" om strenge og +)

Ulrik Magnusson



Birgitte Lauge Eggel~ (08-01-2002)
Kommentar
Fra : Birgitte Lauge Eggel~


Dato : 08-01-02 06:18

Tak Ulrik,
- tusind tak, fordi du gav dig tid til at svare.
Jeg sad faktisk i går efter svaret fra Lars Dam og fik anbragt "setText",
uden dog at få det til at virke. Men det, som var det afgørende, og som jeg
læste om i min deitel-bog, side 230 var denne Double.toString, som fik
værdien op i feltet. Så det er søreme rart at læse en mail fra en
nyhedsgruppe og så kunne nikke genkendende.
Ja, jeg lærer hver dag - sjovt er det java-halløj.
Jeg vil læse om this som du anbefaler.
Hilsen
Birgitte
"Ulrik Magnusson" <ulrikm@yahoo.com> skrev i en meddelelse
news:3C3A1B2A.D0C8D854@yahoo.com...
>
>
> Birgitte Lauge Eggeling wrote:
>
> > Mit problem er her, at jeg ikke kan få resultatet af omregningen
> > celsius-fahrenheit op i fahrenheit området.
>
> [snip]
>
> > if (e.getSource () == celsiusInput){
> > fahrenheitNumber = 9.0 / 5.0 * (celsiusNumber+32);
> > showStatus ( "Celsius to Fahrenheit: " +
> > fahrenheitNumber );
> > celsiusInput.setText ("");
>
> Herover vil du sikkert i stedet sige:
> fahrenheitInput.setText (""+fahrenheitNumber);
>
> >
> > if (e.getSource () == fahrenheitInput){
> > celsiusNumber = 5.0 / 9.0 * (fahrenheitNumber-32);
> > showStatus ("Fahrenheit to Celsius " +
> > celsiusNumber);}
> > fahrenheitInput.setText ("");
>
> og tilsvarende herover:
> celsiusInput.setText (""+celsiusNumber);
>
> > }
> > }
>
> Læg mærke til at TextField.setText tager et String objekt
> som argument - et sådant kan du lave en double til ved
> at 'lægge det til' en tom streng som ovenfor. Du kan også
> bruge Double.toString() metoden. showStatus() fungerer
> fint, da du 'lægger tallet til' strengen "Fahrenheit to Celsius ".
>
> (se også tråden "et spørgsmål om this" om strenge og +)
>
> Ulrik Magnusson
>
>



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste