Optimale Bestellmenge

Suen

Mitglied
Hallo zusammen,
ich bin neu hier und ziemlicher Anfänger. Jetzt habe ich eine GUI (mit Eclipse) programmiert, bei der ich in die Felder Zahlen eingeben kann, und das Feld "Optimale Bestellmenge" soll mir das Ergebnis ausgeben. Leider kommt als Ergebnis immer 0,0 raus. Keine Fehlermeldung ansonsten. Ich habe glaube ich ein Brett vorm Kopf und finde den Fehler nicht.
Wäre toll, wenn mir jemand einen Tip geben kann.
Java:
package paketOptimaleBestellmenge;

import java.awt.BorderLayout;

public class GUIOptimaleBestellmenge extends JFrame {

   private double q;
   private double a;
   private double p;
   private double M;
   private double x;
   
   private JPanel contentPane;
   private JTextField txtBenoetigteMenge;
   private JTextField txtPreis;
   private JTextField txtBestellkosten;
   private JTextField txtLagerkostensatz;
   private JTextField txtOptimaleBestellmenge;

   /**
    * Launch the application.
    */
   public static void main(String[] args) {
       EventQueue.invokeLater(new Runnable() {
           public void run() {
               try {
                   GUIOptimaleBestellmenge frame = new GUIOptimaleBestellmenge();
                   frame.setVisible(true);
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }
       });
   }

   /**
    * Create the frame.
    */
   public GUIOptimaleBestellmenge() {
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setBounds(100, 100, 450, 300);
       contentPane = new JPanel();
       contentPane.setBackground(new Color(255, 255, 51));
       contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
       setContentPane(contentPane);
       contentPane.setLayout(null);
       
       JLabel lblBenoetigteMenge = new JLabel("Ben\u00F6tigte Menge");
       lblBenoetigteMenge.setFont(new Font("Tahoma", Font.PLAIN, 13));
       lblBenoetigteMenge.setBounds(10, 26, 135, 23);
       contentPane.add(lblBenoetigteMenge);
       
       JLabel lblPreis = new JLabel("Preis pro St\u00FCck");
       lblPreis.setFont(new Font("Tahoma", Font.PLAIN, 13));
       lblPreis.setBounds(10, 60, 135, 23);
       contentPane.add(lblPreis);
       
       txtBenoetigteMenge = new JTextField();
       txtBenoetigteMenge.setForeground(Color.BLACK);
       txtBenoetigteMenge.setBackground(Color.LIGHT_GRAY);
       txtBenoetigteMenge.setBounds(155, 62, 86, 20);
       contentPane.add(txtBenoetigteMenge);
       txtBenoetigteMenge.setColumns(10);
       
       txtPreis = new JTextField();
       txtPreis.setForeground(Color.BLACK);
       txtPreis.setBackground(Color.LIGHT_GRAY);
       txtPreis.setBounds(155, 28, 86, 20);
       contentPane.add(txtPreis);
       txtPreis.setColumns(10);
       
       JLabel lblBestellkosten = new JLabel("Bestellkosten ");
       lblBestellkosten.setFont(new Font("Tahoma", Font.PLAIN, 13));
       lblBestellkosten.setBounds(10, 94, 135, 23);
       contentPane.add(lblBestellkosten);
       
       JLabel lbllagerkostensatz = new JLabel("Lagerkostensatz in %");
       lbllagerkostensatz.setFont(new Font("Tahoma", Font.PLAIN, 13));
       lbllagerkostensatz.setBounds(10, 128, 135, 23);
       contentPane.add(lbllagerkostensatz);
       
       txtBestellkosten = new JTextField();
       txtBestellkosten.setForeground(Color.BLACK);
       txtBestellkosten.setBackground(Color.LIGHT_GRAY);
       txtBestellkosten.setBounds(155, 96, 86, 20);
       contentPane.add(txtBestellkosten);
       txtBestellkosten.setColumns(10);
       
       txtLagerkostensatz = new JTextField();
       txtLagerkostensatz.setForeground(Color.BLACK);
       txtLagerkostensatz.setBackground(Color.LIGHT_GRAY);
       txtLagerkostensatz.setBounds(155, 130, 86, 20);
       contentPane.add(txtLagerkostensatz);
       txtLagerkostensatz.setColumns(10);
       
       JLabel lblOptimaleBestellmenge = new JLabel("Optimale Bestellmenge");
       lblOptimaleBestellmenge.setFont(new Font("Tahoma", Font.BOLD, 14));
       lblOptimaleBestellmenge.setBounds(251, 42, 173, 57);
       contentPane.add(lblOptimaleBestellmenge);
       
       txtOptimaleBestellmenge = new JTextField();
       txtOptimaleBestellmenge.setForeground(Color.BLACK);
       txtOptimaleBestellmenge.setBackground(Color.LIGHT_GRAY);
       txtOptimaleBestellmenge.setBounds(251, 96, 165, 55);
       contentPane.add(txtOptimaleBestellmenge);
       txtOptimaleBestellmenge.setColumns(10);
       
       JButton btnBeenden = new JButton("Beenden");
       btnBeenden.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent arg0) {
               System.exit(0);
           }
       });
       btnBeenden.setFont(new Font("Tahoma", Font.BOLD, 13));
       btnBeenden.setBounds(10, 175, 106, 46);
       contentPane.add(btnBeenden);
       
       JButton btnLeeren = new JButton("Leeren");
       btnLeeren.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent arg0) {
               txtOptimaleBestellmenge.setText("");
               txtLagerkostensatz.setText("");
               txtBestellkosten.setText("");
               txtPreis.setText("");
               txtBenoetigteMenge.setText("");
           }
       });
       btnLeeren.setFont(new Font("Tahoma", Font.BOLD, 13));
       btnLeeren.setBounds(128, 175, 106, 46);
       contentPane.add(btnLeeren);
       
       JButton btnBerechnen = new JButton("Berechnen");
       btnBerechnen.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent arg0) {
               optimumBerechnen(Double.parseDouble(txtLagerkostensatz.getText()), Double.parseDouble(txtBenoetigteMenge.getText()), Double.parseDouble(txtPreis.getText()), Double.parseDouble(txtBestellkosten.getText()));
               txtOptimaleBestellmenge.setText(Double.toString(x));
           }
       });
       btnBerechnen.setFont(new Font("Tahoma", Font.BOLD, 13));
       btnBerechnen.setBounds(244, 175, 106, 46);
       contentPane.add(btnBerechnen);
   }
   
   public double optimumBerechnen(double q, double M, double a, double p){
       double x = Math.sqrt((200*M*a)+(p*(q/100)));
       
       return x;
   }

   

   
}
Liebe Grüße Suen
 

Robat

Top Contributor
Du ignorierst das Ergebnis von deiner Optimum Methode momentan komplett. Du willst es sicherlich aber in x speichern
 

Suen

Mitglied
Hallo Robat, ich hatte Deinen ersten Post schon verstanden, aber ich stehe echt auf dem Schlauch :-(
Was muss ich tun damit sie nicht ignoriert wird?
 

L.Y.vonBerg

Mitglied
Kleiner Tipp, Suen... Mit BlueJ geht vieles einfacher für Anfänger. (Und man kann es auch später noch zum Testen nutzen, weil man die Klassen und so besser sieht)
 

Neue Themen


Oben