Avatar billede morteeart Nybegynder
09. september 2004 - 11:30 Der er 6 kommentarer og
1 løsning

Diverse udvidelser til kode

Hej

jeg har gang i noget kode, og det virker også fint
men jeg vil gerne lave nogle udvidelser:

1.)  Hvis felterne er NULL skal de sættes til 0
2.)  Resultatet skal retuneres med 3 decimaler.

Så hvordan kan jeg gøre dette ?

## Koden ##


/**
@Author: Claus Joergensen
@date 19. August 2004
*/

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
import java.net.*;
import javax.swing.*;

public class GridBagDemo extends JFrame {

      JLabel overskrift = new JLabel( " Indtast a,b & c " );
      JTextField inputA = new JTextField(4);
      JTextField inputB = new JTextField(4);
      JTextField inputC = new JTextField(4);
      JLabel underskrift = new JLabel( " Antal Nulpunkter " );
      JLabel blank = new JLabel("\n");
      JLabel blank2 = new JLabel("\n");
      JTextField antalNP = new JTextField(4);
      JLabel xValues = new JLabel( " X-værdier" );
      JTextField xPlus = new JTextField(2);
      JTextField xMinus = new JTextField(2);
      JButton udregnKnap = new JButton("Udregn !");

  public GridBagDemo() {
      super( "GridBagLayout" );

      Container container = getContentPane();
      GridBagLayout layout = new GridBagLayout();
      container.setLayout(layout);
      GridBagConstraints constraints = new GridBagConstraints();

      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 0;
      constraints.gridy = 0;
      constraints.gridwidth = 3;
      constraints.gridheight = 8;

      constraints.fill = GridBagConstraints.HORIZONTAL;
      constraints.gridx = 0;
      constraints.gridy = 0;
      constraints.gridwidth = 3;
      constraints.gridheight = 1;

      layout.setConstraints(overskrift,constraints);    // Tilføjer overskriften
      container.add(overskrift);

/*********** START INPUTS **********************************************/

      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 0;
      constraints.gridy = 1;
      constraints.gridwidth = 1;
      constraints.gridheight = 1;

      layout.setConstraints(inputA,constraints);  // Add inputA
      container.add(inputA);

      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 1;
      constraints.gridy = 1;
      constraints.gridwidth = 1;
      constraints.gridheight = 1;

      layout.setConstraints(inputB,constraints);  // Add inputB
      container.add(inputB);

      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 2;
      constraints.gridy = 1;
      constraints.gridwidth = 1;
      constraints.gridheight = 1;

      layout.setConstraints(inputC,constraints);  // Add inputC
      container.add(inputC);

/*********** END INPUTS *********** Start Nulpunkter *******************/
     
      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 0;
      constraints.gridy = 2;
      constraints.gridwidth = 3;
      constraints.gridheight = 1;

      layout.setConstraints(blank,constraints);  // Blank space
      container.add(blank);


      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 0;
      constraints.gridy = 3;
      constraints.gridwidth = 1;
      constraints.gridheight = 1;

      layout.setConstraints(underskrift,constraints);  // Add nulpunks lablet
      container.add(underskrift);

      constraints.fill = GridBagConstraints.HORIZONTAL;
      constraints.gridx = 1;
      constraints.gridy = 3;
      constraints.gridwidth = 2;
      constraints.gridheight = 1;

      layout.setConstraints(antalNP,constraints);  // Add antal nulpunker
      container.add(antalNP);

      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 0;
      constraints.gridy = 4;
      constraints.gridwidth = 3;
      constraints.gridheight = 1;

      layout.setConstraints(blank2,constraints);  // Blank space
      container.add(blank2);
     
/*********** END nulpunker *********** Start xværdier *******************/

      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 0;
      constraints.gridy = 5;
      constraints.gridwidth = 1;
      constraints.gridheight = 1;

      layout.setConstraints(xValues,constraints);  // Add antal en label mere
      container.add(xValues);

      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 0;
      constraints.gridy = 6;
      constraints.gridwidth = 1;
      constraints.gridheight = 1;

      layout.setConstraints(xPlus,constraints);  // x+
      container.add(xPlus);

      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 0;
      constraints.gridy = 7;
      constraints.gridwidth = 1;
      constraints.gridheight = 1;

      layout.setConstraints(xMinus,constraints);  // x-
      container.add(xMinus);

      constraints.fill = GridBagConstraints.BOTH;
      constraints.gridx = 1;
      constraints.gridy = 6;
      constraints.gridwidth = 2;
      constraints.gridheight = 2;

      layout.setConstraints(udregnKnap,constraints);  // Knappen som udregner resultatet.
      container.add(udregnKnap);

      udregnKnap.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
      udregnKnapActionPerformed(evt);
      }
        }
      );

      setSize( 250, 270 );
      setVisible( true );
  }


  private void udregnKnapActionPerformed(ActionEvent evt) {
  double a = Integer.parseInt(inputA.getText());
  double b = Integer.parseInt(inputB.getText());
  double c = Integer.parseInt(inputC.getText());

  double xPlusRes = (-b + (Math.sqrt((b*b)-4*a*c))) / (a * 2);
  String xPlusString = String.valueOf(xPlusRes);
  xPlus.setText(xPlusString);

  double xMinusRes = (-b - (Math.sqrt((b*b)-4*a*c))) / (a * 2);
  String xMinusString = String.valueOf(xMinusRes);
  xMinus.setText(xMinusString);


  }

  public static void main( String args[] )  {
      GridBagDemo application = new GridBagDemo();
      application.setDefaultCloseOperation(
              JFrame.EXIT_ON_CLOSE );
  }

}
Avatar billede arne_v Ekspert
09. september 2004 - 11:34 #1
Er det:

if(inputX.getText()==null || inputX.getText().equals("")) {
  inputX.setText("0");
}

du leder efter ?
Avatar billede arne_v Ekspert
09. september 2004 - 11:35 #2
Antal decimaler kan man styre med:

DecimalFormat fmt = new DecimalFormat("#.00");

og brug af fmt.format(tal)
Avatar billede morteeart Nybegynder
09. september 2004 - 11:57 #3
mange tak det virker fint. næsten..

kan ikke få DecimalFormat til at virke.

Fejlmeddelse:

> Udfører: C:\Programmer\ConTEXT\ConExec.exe "C:\j2sdk1.4.2_04\bin\javac.exe" "C:\apache\htdocs\Java\GridBagDemo.java"

C:\apache\htdocs\Java\GridBagDemo.java:16: cannot resolve symbol
symbol  : class DecimalFormat
location: class GridBagDemo
      DecimalFormat fmt = new DecimalFormat("#.00");
      ^
C:\apache\htdocs\Java\GridBagDemo.java:16: cannot resolve symbol
symbol  : class DecimalFormat
location: class GridBagDemo
      DecimalFormat fmt = new DecimalFormat("#.00");
                              ^
2 errors
> Udfører
Avatar billede arne_v Ekspert
09. september 2004 - 11:59 #4
Du skal importere java.text.* for at have DecimalFormat
Avatar billede arne_v Ekspert
09. september 2004 - 11:59 #5
Og med 3 decimaler skal det selvfølgelig være #.000
Avatar billede morteeart Nybegynder
09. september 2004 - 12:02 #6
oki, tak :)

læg et svar så :-)
Avatar billede arne_v Ekspert
09. september 2004 - 12:17 #7
svar
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