Hallo,
ich habe zwei Probleme mit der Anwendung.
1. Wenn ich z.B. für die Bildgröße 7.874 und für den Abbildungsmaßstab 0.3028 eingebe erhalte ich für die Gegenstandsweite kein Ergebnis. Es wird nur 0.0 angezeigt.
2. Bei der Berechnung des Abbildungsmaßstabes ändert sich der Wert der Gegenstandsgröße und der Wert wird nicht berechnet.
Kurz gesagt es wird nichts berechnet und die eingegebenen Werte ändern sich.
Woran kann das liegen?
Danke und Gruß
Klasse mit Formeln (die Formeln der Abbildungsgleichung sollen mit dieser Anwendung nichts zu tun haben)
ich habe zwei Probleme mit der Anwendung.
1. Wenn ich z.B. für die Bildgröße 7.874 und für den Abbildungsmaßstab 0.3028 eingebe erhalte ich für die Gegenstandsweite kein Ergebnis. Es wird nur 0.0 angezeigt.
2. Bei der Berechnung des Abbildungsmaßstabes ändert sich der Wert der Gegenstandsgröße und der Wert wird nicht berechnet.
Kurz gesagt es wird nichts berechnet und die eingegebenen Werte ändern sich.
Woran kann das liegen?
Danke und Gruß
Code:
import java.awt.*;
import javax.swing.*;
import javax.swing.JFrame;
import java.awt.event.*;
public class Abbildungsmaßstab implements ActionListener{
JFrame fr;
JTextField text1, text2, text3;
JButton ok, lo;
String b, g, ß;
double gg, bb, ßß, wert;
public void setLayout(){
fr = new JFrame();
fr.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
fr.setResizable(false);
fr.setLocation(500, 300);
fr.setLayout( new GridLayout(4, 2, 20, 5) );
JLabel lable1 = new JLabel("Bildgröße:");
fr.add(lable1);
text1 = new JTextField();
text1.setName("b");
text1.addActionListener(this);
fr.add(text1);
JLabel lable2 = new JLabel("Gegensgröße:");
fr.add(lable2);
text2 = new JTextField();
text2.setName("g");
text2.addActionListener(this);
fr.add(text2);
JLabel lable3 = new JLabel("Abbildungsmaßstab");
fr.add(lable3);
text3 = new JTextField();
text3.setName("f");
text3.addActionListener(this);
fr.add(text3);
ok = new JButton ("Berechnen");
ok.setName("ok");
ok.addActionListener(this);
fr.add(ok);
lo = new JButton ("Löschen");
lo.setName("lo");
lo.addActionListener(this);
fr.add(lo);
fr.pack();
fr.setVisible( true );
}
public void actionPerformed(ActionEvent event){
if ("Berechnen".equals(event.getActionCommand())){
if (text1.getText().isEmpty() == true && text2.getText().isEmpty() == true && text3.getText().isEmpty() == true){
JDialog dia = new JDialog(fr, "Falsche Eingabe");
dia.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
dia.setResizable(false);
dia.setLocation(500, 300);
dia.setSize(300, 100);
dia.setVisible(true);
}
if (text1.getText().isEmpty() == false && text2.getText().isEmpty() == false && text3.getText().isEmpty() == false){
text1.setText("");
text2.setText("");
text3.setText("");
}
// --------- Abbildungsmaßstab -----------
if (text1.getText().isEmpty() == false && text2.getText().isEmpty() == false){
b = text1.getText();
bb = Double.parseDouble(b);
g = text2.getText();
gg = Double.parseDouble(g);
wert = Optikformeln.calcAbbildungsmaßstab(bb, gg);
wert = Math.rint((wert * 100)/100);
text3.setText(String.valueOf(wert));
}
// --------- Bildgroeße -----------
if (text2.getText().isEmpty() == false && text3.getText().isEmpty() == false){
g = text2.getText();
gg = Double.parseDouble(g);
ß = text3.getText();
ßß = Double.parseDouble(ß);
wert = Optikformeln.calcBildgroeße(ßß, gg);
wert = Math.rint((wert * 100)/100);
text1.setText(String.valueOf(wert));
}
// ------- Gegenstandsgroeße ----------------
if (text1.getText().isEmpty() == false && text3.getText().isEmpty() == false){
b = text1.getText();
bb = Double.parseDouble(b);
ß = text3.getText();
ßß = Double.parseDouble(ß);
wert = Optikformeln.calcGegenstandsgroeße(bb, ßß);
wert = Math.rint((wert * 100)/100);
text2.setText(String.valueOf(wert));
}
}
if("Löschen".equals(event.getActionCommand())){
text1.setText("");
text2.setText("");
text3.setText("");
}
}
public static void main(String[] args) {
Abbildungsmaßstab ab = new Abbildungsmaßstab();
ab.setLayout();
}
}
Klasse mit Formeln (die Formeln der Abbildungsgleichung sollen mit dieser Anwendung nichts zu tun haben)
Code:
public class Optikformeln {
// Abbildungsgleichung
// Bildweite
static double calcBildweite(double g, double f){
double bildw = (g * f)/(g - f);
return bildw;
}
// Gegenstandsweite
static double calcGegenstand(double f, double b){
double gegen = (f * b)/(b - f);
return gegen;
}
// Brennweite
static double calcBrenweite(double g, double b){
double brenn = (g * b)/(g + b);
return brenn;
}
// Die Elemente des Abbildungsmaßstabes
// Abbildungsmaßstab
static double calcAbbildungsmaßstab(double b, double g){
double abb = b/g;
return abb;
}
// Bildgroeße
static double calcBildgroeße(double beta, double g){
double bild = beta*g;
return bild;
}
// Gegenstandsgröße
static double calcGegenstandsgroeße(double b, double beta){
double g = b/beta;
return g;
}
}
Zuletzt bearbeitet: