Java-Editor Frage

09/11/2011 17:02 hallo5551#1
Guten Tag liebe Community,

ich habe eigentlich'ne simple Frage, für die die sich damit auskennen. Undzwar wie sorge ich dafür das wenn ich einen rechner programmiere, dieser das Ergebnis da ausgibt wo ich es ihm bestimmen will
Dazu siehe bitte den Quelltext:
-> Der Code soll bei dem "Ihr BMI beträgt" ausgegeben werden, jedoch gibt er das Ergebnis immer auf dem button as, was nunja sagen wi mal scheiße ist. :S
Für Hilfe bin ich dankbar. :D

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 11.09.2011
  * @author MikeY
  */

public class Rechner extends JFrame {
  // Anfang Attribute
  private JLabel jgewicht = new JLabel();
  private JNumberField te_gewicht = new JNumberField();
  private JLabel jkilogramm = new JLabel();
  private JLabel jgroesse = new JLabel();
  private JNumberField te_groesse = new JNumberField();
  private JLabel jmeter = new JLabel();
  private JButton bb_berechnen = new JButton();
  private TextArea ta_bmi = new TextArea("", 1, 1, TextArea.SCROLLBARS_NONE);
  // Ende Attribute

  public Rechner(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 300;
    int frameHeight = 300;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    jgewicht.setBounds(8, 24, 47, 16);
    jgewicht.setText("Gewicht:");
    jgewicht.setFont(new Font("Impact", Font.PLAIN, 13));
    jgewicht.setForeground(Color.BLUE);
    cp.add(jgewicht);
    te_gewicht.setBounds(72, 16, 89, 24);
    te_gewicht.setText("");
    cp.add(te_gewicht);
    jkilogramm.setBounds(168, 24, 64, 16);
    jkilogramm.setText("Kilogramm");
    jkilogramm.setFont(new Font("Impact", Font.PLAIN, 13));
    jkilogramm.setForeground(Color.BLUE);
    cp.add(jkilogramm);
    jgroesse.setBounds(8, 64, 38, 16);
    jgroesse.setText("Größe:");
    jgroesse.setFont(new Font("Impact", Font.PLAIN, 13));
    jgroesse.setForeground(Color.BLUE);
    cp.add(jgroesse);
    te_groesse.setBounds(72, 56, 89, 24);
    te_groesse.setText("");
    cp.add(te_groesse);
    jmeter.setBounds(168, 64, 34, 16);
    jmeter.setText("Meter");
    jmeter.setFont(new Font("Impact", Font.PLAIN, 13));
    jmeter.setForeground(Color.BLUE);
    cp.add(jmeter);
    bb_berechnen.setBounds(72, 152, 145, 49);
    bb_berechnen.setText("Berechnen");
    bb_berechnen.setMargin(new Insets(2, 2, 2, 2));
    bb_berechnen.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        bb_berechnen_ActionPerformed(evt);
      }
    });
    cp.add(bb_berechnen);
    cp.setBackground(Color.ORANGE);
    ta_bmi.setBounds(24, 208, 233, 49);
    ta_bmi.setText("");
    cp.add(ta_bmi);
    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  public void bb_berechnen_ActionPerformed(ActionEvent evt) {
        double gewicht=0, groesse=0, bmi=0;                                               //Eingabe

        gewicht = Double.parseDouble(te_gewicht.getText()); // Eingabe
        groesse = Double.parseDouble(te_groesse.getText()); // Eingabe
    bmi=gewicht/groesse;                                                           //Verarbeitung
    bmi=bmi/groesse;                                                               //Verarbeitung
    bb_berechnen.setText(String.valueOf(bmi));
  }

  // Ende Methoden

  public static void main(String[] args) {
    new Rechner("Rechner");
  }
}
09/11/2011 18:28 unknown661#2
ich programmier zwar eher selten/gar nicht mit swing/awt aber du machst folgendes
Code:
 private JButton bb_berechnen = new JButton();
......
 bb_berechnen.setText(String.valueOf(bmi));
du setzt also den text des buttons auf den berechneten bmi wert und dann wunderst du dich^^ mach dir einfach einen neuen label oder was auch immer und setz dort den entsprechden wert. sollte ungefähr so aussehen:
Code:
 private JLabel ergebnis_label = new JLabel();
 .....
ergebnis_label.setText(String.valueOf(bmi));