Avatar billede divad89 Nybegynder
16. februar 2007 - 10:09 Der er 5 kommentarer og
1 løsning

Tekstfelt med tal?

Jeg skal til at lave en "lommeregner" der kan regne rødder og toppunkter ud, indtil videre har jeg fået lavet dette:

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

class GrafiskVindue extends Frame
{
  Label labelac = new Label();
  Label labelbc = new Label();
  Label labelcc = new Label();
  Label labelec = new Label();
  TextField textFieldNavnA = new TextField();
  TextField textFieldNavnB = new TextField();
  TextField textFieldNavnC = new TextField();
  Button buttonOpdater = new Button();
  TextArea textAreaHilsen = new TextArea();


  // Udviklingsværktøj definerer gerne en separat metode hvor de
  // initialiserer komponenterne. I JBuilder og JDeveloper hedder
  // den jbInit(), mens den hedder initComponents() i Betbeans.
  // Initialiseringen kunne dog lige så godt ligge direkte her i konstruktøren

  public GrafiskVindue() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }


  // Udviklingsværktøjets initialisering af komponenter.
  // Ændr med varsomhed, ellers kan værktøjet ikke genkende "sin" kode.

  private void jbInit() throws Exception {
    labelac.setText("A:");
    labelac.setBounds(new Rectangle(5, 63, 15, 15));
    textFieldNavnA.setText("5");
    textFieldNavnA.setBounds(new Rectangle(25, 60, 60, 29));
    labelbc.setText("B:");
    labelbc.setBounds(new Rectangle(100, 63, 15, 15));
    textFieldNavnB.setText("4");
    textFieldNavnB.setBounds(new Rectangle(120, 60, 60, 29));
    labelcc.setText("C:");
    labelcc.setBounds(new Rectangle(195, 63, 15, 15));
    textFieldNavnC.setText("3");
    textFieldNavnC.setBounds(new Rectangle(215, 60, 60, 29));
    buttonOpdater.setLabel("Regn ud!");
    buttonOpdater.setBounds(new Rectangle(290, 60, 91, 29));
        buttonOpdater.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        buttonOpdater_actionPerformed(e);
      }
    });
    String ac = textFieldNavnA.getText();
    String bc = textFieldNavnB.getText();
    String cc = textFieldNavnC.getText();
    textAreaHilsen.setText("A værdien er sat til: "+ac+"  ,B værdien er sat til: "+bc+"  ,C værdien er sat til: "+cc);
    textAreaHilsen.setBounds(new Rectangle(5, 130, 500, 78));
    this.setLayout(null);
    this.add(labelac, null);
    this.add(labelbc, null);
    this.add(labelcc, null);
    this.add(textAreaHilsen, null);
    this.add(buttonOpdater, null);
    this.add(textFieldNavnA, null);
    this.add(textFieldNavnB, null);
    this.add(textFieldNavnC, null);
  }
  String ac = textFieldNavnA.getText();
  String bc = textFieldNavnB.getText();
 
double dc=Math.sqrt(bc^2-4*ac*bc);
             
  void buttonOpdater_actionPerformed(ActionEvent e) {
    String ac = textFieldNavnA.getText();
    String bc = textFieldNavnA.getText();
    textAreaHilsen.setText("Rod 1 er: "+ac+"  ,Rod 2 er:"+bc);
    repaint(); // gentegn vinduet
  }
}

public class andengradsligning1
{
public static void main(String[] arg)
{
GrafiskVindue vindue = new GrafiskVindue(); // opret vinduet
vindue.setSize(600,500); // sæt vinduets størrelse
vindue.setTitle("grafiskvindue"); // sæt vinduets titel
vindue.setVisible(true); // åbn vinduet
}
}

Når jeg skal regne diskriminanten ud, kommer den ud med at man ikke kan gange inde i en tekststreng, jeg ville så vide hvordan man kan lave teksten om til tal, så man godt kan gange ud osv.

Med venlig hilsen
David
Avatar billede mikkelbm Nybegynder
16. februar 2007 - 10:13 #1
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Double.html#parseDouble(java.lang.String)

String ac = textFieldNavnA.getText();
String bc = textFieldNavnB.getText();

double d_ac = Double.parseDouble (ac);
double d_db = Double.parseDouble (db);
Avatar billede mikkelbm Nybegynder
16. februar 2007 - 10:15 #2
Og hvis du vil regne i heltal bruger du selvfølgelig bare integer:

String ac = textFieldNavnA.getText();
String bc = textFieldNavnB.getText();

double i_ac = Integer.parseInt (ac);
double i_db = Integer.parseInt (db);
Avatar billede mikkelbm Nybegynder
16. februar 2007 - 10:15 #3
Vrøvl:

int i_ac = Integer.parseInt (ac);
int i_db = Integer.parseInt (db);
Avatar billede mikkelbm Nybegynder
16. februar 2007 - 10:24 #4
Og et svar...
Avatar billede divad89 Nybegynder
16. februar 2007 - 14:08 #5
Jeg siger mange mange tak for det hurtige svar, men jeg har så lige et spørgsmål til, hvordan skifter man linje inde i tekstboksen, hvor svarene kommer frem, så rod 1 kan stå på den ene linje, rod 2 på den næste osv.

Med venlig hilsen
David
Avatar billede mikkelbm Nybegynder
16. februar 2007 - 14:17 #6
Adskil dem med "\n"
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