# Java Applet Ohmsches Gesetz



## Karl-Heinz (17. Dez 2003)

Hallo!
Ich würde gerne ein Java Applet erstellen, das den Strom, die Spannung und den Widerstand berechnen kann. Was berechnet werden soll, soll mit einem Radiobutton ausgewählt werden.
Die Werte werden in Textfelder eingegeben. Das Ergebnis soll in einem Label angezeigt werden.

Benötigt wird die Formel U= R*I

U= Spannung
R= Widerstand
I= Strom

Ich bin noch ziemlich neu in der Materie. Wie könnte ich das am besten anstellen?
Besten Dank im Vorraus!

Gruß
Karl-Heinz


----------



## Guest (17. Dez 2003)

Das liest sich wie 'ne Anwenderforderung! Soll dir jetzt jemand den kompletten Code posten, oder was?


----------



## stev.glasow (17. Dez 2003)

seh ich auch so - bitte nur frage zu 'konkreten' problemen.

*thema gelöscht.*

<edit>
doch nicht. habe jetzt einen bereich für so etwas angelegt.


----------



## Karl-Heinz (17. Dez 2003)

Nein, nicht den kompletten Quelltext. Nur einen Lösungshinweis. Danke!


----------



## Cruze (8. Mrz 2004)

Eine GUI mit: drei Textfeldern (U, I und R), ein Button "berechnen", ein Ausgabefeld
Bei Klick auf den Button, überprüfen, welches Feld (U, I oder R) leer ist.
Gleichung U = R*I nach dem fehlenden element umformen.
Bsp: Feld I ist leer, dann: I = U/R rechnen.
Ergebnis ausgeben.
Fertig


----------



## abollm (21. Sep 2004)

Hallo,

nachfolgend einmal ein kleines Applet-Demo für die gestellte Aufgabe (ohne Gewähr und  nur als Anregung):


```
// Ein kleines Beispiel-Applet zur Demonstration OHMsches Gesetz:
// U = R * I
// 
// <applet code=Demo 
// width=400 height=200> </applet>
// Autor: A. Bollmann
// Datum: 21.09.2004
// Zweck: Reine Demo
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.applet.*;

class BerechnungsLogik {
  private int modifier;
  public BerechnungsLogik(int mod) {
    modifier = mod;
  }
  public double berechnungU(double arg1, double arg2) {
    return arg1 * arg2;
  }
  // hier können noch weitere Berechnungen eingefügt werden ...
}

public class OHMschesGesetz extends JApplet {
  JTextField 
    i = new JTextField(25),
    r = new JTextField(25),
    erg = new JTextField(25); 
  BerechnungsLogik bl = new BerechnungsLogik(1);
  JButton berR = new JButton("Berechnung U [V]");
  static double getValue(JTextField tf) {
    try {
      return Double.parseDouble(tf.getText());
    } catch(NumberFormatException e) {
      return 0;
    }
  }
  class BerRL implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      erg.setText(Double.toString(
        bl.berechnungU(getValue(i),getValue(r))));
    }
  }

  public void init() {
    Container cp = getContentPane();
    cp.setLayout(new FlowLayout());
    cp.add(new JLabel("Ergebnis U[V]:"));
    cp.add(erg);
    berR.addActionListener(new BerRL());
    JPanel p1 = new JPanel();
    p1.add(new JLabel("Eingabe  I[A]:"));
    p1.add(i);
    cp.add(p1);
    JPanel p2 = new JPanel();
    p2.add(new JLabel("Eingabe R [Ohm]:"));
    cp.add(p2);;
    cp.add(r);
    JPanel p3 = new JPanel();
    cp.add(p3);
    p3.add(berR);
  }
  public static void main(String[] args) {
        JApplet applet = new OHMschesGesetz();
        applet.init();
        applet.start();
  }
}
```


----------



## Beni (21. Sep 2004)

Dir ist schon klar, dass diese Frage noch im letzten Jahr gestellt wurde... ?


----------



## abollm (21. Sep 2004)

Klar, man ist ja stets bemüht auch den Nachzüglern einige praktische Beispiele an die Hand zu geben. Deutschland braucht doch in diesen harten Zeiten Wissen und kein Geschwafel, oder?


----------



## Gast (13. Dez 2004)

Oder mit switch / case ist auch ne Lösung 


package blizzard;

import java.io.*;

/**
 * 

Überschrift:Ohmsches Gesetz </p>
 * 

Beschreibung:Ja Ohmsches Gesetz eben ! </p>
 * 

Copyright: Copyright (c) 2004</p>
 * 

Organisation:Mafia </p>
 * @author Pascal Delle
 * @version 1.2
 */
public class blizzard {
  public blizzard() {
  }

  public static void main(String[] args) throws IOException {
    blizzard blizzard1 = new blizzard();
    BufferedReader input = new BufferedReader(
        new InputStreamReader(System.in));
    //_______________________________________________________________
    String Eingabe_Main_String;
    String Eingabe_U_String;
    String Eingabe_R_String;
    String Eingabe_I_String;
    int Hauptauswahl;
    double U;
    double R;
    double I;
    //_______________________________________________________________
    System.out.print(
        "\nBitte Rechnung wählen I=1   U=2   R=3 : ");
    Eingabe_Main_String = input.readLine();
    Hauptauswahl = Integer.parseInt(Eingabe_Main_String); // Hauptabfrage

    switch (Hauptauswahl) {
      case 1: // I Berechnung
        System.out.print("\nBitte U eingeben : ");
        Eingabe_U_String = input.readLine();
        U = Double.parseDouble(Eingabe_U_String);
        System.out.print("\nBitte R eingeben : ");
        Eingabe_R_String = input.readLine();
        R = Double.parseDouble(Eingabe_R_String);
        I = U / R;
        I = Math.round(I * 100.) / 100.;
        if (I < 1) {
          I = I * 1000;
        }
        else {
          if (I > 1000) {
            I = I / 1000;
          }
        }

        System.out.print("Strom (I) = " + I + " A");
        break;

      case 2: // U Berechnung
        System.out.print("\nBitte I eingeben : ");
        Eingabe_I_String = input.readLine();
        I = Double.parseDouble(Eingabe_I_String);
        System.out.print("\nBitte R eingeben : ");
        Eingabe_R_String = input.readLine();
        R = Double.parseDouble(Eingabe_R_String);
        U = R * I;
        U = Math.round(U * 100.) / 100.;
        if (I < 1) {
          I = I * 1000;
        }
        else {
          if (I > 1000) {
            I = I / 1000;
          }
        }

        System.out.print("Spannung (U) = " + U + " V");
        break;

      case 3: // R Berechnung
        System.out.print("\nBitte I eingeben : ");
        Eingabe_I_String = input.readLine();
        I = Double.parseDouble(Eingabe_I_String);
        System.out.print("\nBitte U eingeben : ");
        Eingabe_U_String = input.readLine();
        U = Double.parseDouble(Eingabe_U_String);
        R = U / I;
        U = Math.round(U * 100.) / 100.;
        if (I < 1) {
          I = I * 1000;
        }
        else {
          if (I > 1000) {
            I = I / 1000;
          }
        }
        System.out.print("Widerstand (R) = " + R + " Ohm");
        break;
    }
  }
}


----------



## Gast (13. Dez 2004)

Ohhhhhhh  dickes Sorry in case 2 und 3 hab ich einfach
kopiert eingefügt und vergessen zu ändern 
kann pasieren


aus           I = I * 1000; 
wird          U= U*1000  und / 1000
und bei case 3   R= Bla


----------

