Hallo Leute,
ich habe ein kleines Programm geschrieben, in dem der Benutzer folgende Eingaben machen soll.
- Eingabe der Größe (Textfeld)
- Eingabe des Gewichts (Textfeld)
- Eingabe des Geschlechts (Radiobuttons).
Konnte leider noch nicht compiliert werden, weil ich den String-Wert des Radiobuttons nicht übergeben bekomme. Betrifft beides die class ItemAdapter und MeinActionAdapter.
Kann mir jemand weiterhelfen?
ich habe ein kleines Programm geschrieben, in dem der Benutzer folgende Eingaben machen soll.
- Eingabe der Größe (Textfeld)
- Eingabe des Gewichts (Textfeld)
- Eingabe des Geschlechts (Radiobuttons).
Konnte leider noch nicht compiliert werden, weil ich den String-Wert des Radiobuttons nicht übergeben bekomme. Betrifft beides die class ItemAdapter und MeinActionAdapter.
Kann mir jemand weiterhelfen?
Code:
import java.awt.*; // werden für die GUI-Komponenten gebraucht
import java.awt.event.*; // werden für die Eventbehandlung gebraucht
/**
* Beschreibung:
*
*/
class Gewicht
{
public static void main(String[] arg)
{
MeinFenster fenster = new MeinFenster();
fenster.setVisible(true);
}// end of main
}// end of class Gewicht
/**
* Beschreibung:
*
*
*/
class MeinFenster extends Frame
{
/**
* Instanzvariablen werden deklariert, damit die Komponenten in
* anderen Methoden verwendet werden können
*/
TextField
tfKoerpergroesse,
tfKoerpergewicht;
CheckboxGroup
cbGeschlecht;
Checkbox
cbMann,
cbFrau;
Label
lbText;
Button
butWerteAus;
TextArea
textAusgabewerte;
/**
* Konstruktor
* @param tfKoerpergroesse= Eingabefeld zur Erfassung der Körpergröße
* @param tfKoerpergewicht= Eingabefeld zur Erfassung des Körpergewichts
* @param cbGeschlecht= Checkbox, zum Auswählen des jeweiligen Geschlechts
* @param lbText= Beschreibung der einzelnen Textfelder
* @param butWerteAus= Button zum Berechnen/Auswerten der eingegebenen Daten
* @param textAusgabewerte= ausgewertete Text, der in die Textarea geschrieben wird
*
* Beschreibung:
* In dieser Klasse wird mein Fenster durch Vorgaben eingestellt.
*/
public MeinFenster() // Standard-Konstruktor
{
// Titelleiste des Fensters ----------------------------------
super("Gewicht-Ratgeber v1.0");
// Größe des Fensters wird festgelegt ------------------------
this.setSize(600, 500); // in Pixel Breite / Höhe
// Layout wird eingestellt -----------------------------------
GridBagLayout grid = new GridBagLayout();
GridBagConstraints constr = new GridBagConstraints();
this.setLayout(grid);
// Hintergrund wird eingestellt bzw. festgelegt --------------
setBackground(Color.ORANGE);
/**
* GUI-Komponente wird jeweils konstruiert
* Constraints werden jeweils festgelegt
* Komponente wird jeweils auf das Fenster gelegt
*
* für 1.Zeile
*/
lbText = new Label("Der persönliche Gewicht-Ratgeber für Ihren Körper");
lbText.setFont(new Font ("Helvetica", Font.BOLD,14));
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = 1;
this.add( lbText, constr);
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
/**
* GUI-Komponente wird jeweils konstruiert
* Constraints werden jeweils festgelegt
* Komponente wird jeweils auf das Fenster gelegt
*
* für 2.Zeile
*/
lbText = new Label("Körpergröße");
lbText.setFont(new Font ("Helvetica", Font.BOLD,14));
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = 1;
this.add( lbText, constr);
tfKoerpergroesse = new TextField("", 10);
constr.anchor = GridBagConstraints.WEST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( tfKoerpergroesse, constr);
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
/**
* GUI-Komponente wird jeweils konstruiert
* Constraints werden jeweils festgelegt
* Komponente wird jeweils auf das Fenster gelegt
*
* für 3.Zeile
*/
lbText = new Label("Körpergewicht");
lbText.setFont(new Font ("Helvetica", Font.BOLD,14));
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = 1;
this.add( lbText, constr);
tfKoerpergewicht = new TextField("", 4);
constr.anchor = GridBagConstraints.WEST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( tfKoerpergewicht, constr);
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
/**
* GUI-Komponente wird jeweils konstruiert
* Constraints werden jeweils festgelegt
* Komponente wird jeweils auf das Fenster gelegt
*
* für 4.Zeile
*/
cbGeschlecht = new CheckboxGroup();
cbMann = new Checkbox ("Mann", cbGeschlecht, true);
cbFrau = new Checkbox ("Frau", cbGeschlecht, false);
constr.anchor = GridBagConstraints.WEST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( cbMann, constr);
this.add( cbFrau, constr);
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
/**
* GUI-Komponente wird jeweils konstruiert
* Constraints werden jeweils festgelegt
* Komponente wird jeweils auf das Fenster gelegt
*
* für 5.Zeile
*/
butWerteAus = new Button("Werte aus");
butWerteAus.setBackground(Color.RED);
constr.fill = GridBagConstraints.BOTH;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( butWerteAus, constr);
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
/**
* GUI-Komponente wird jeweils konstruiert
* Constraints werden jeweils festgelegt
* Komponente wird jeweils auf das Fenster gelegt
*
* für 6.Zeile
*/
textAusgabewerte = new TextArea(12,50); // Höhe/Breite des Textbereichs
textAusgabewerte.setEditable(true);
constr.gridx = 0;
constr.gridy = 8;
this.add( textAusgabewerte, constr);
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
// Listener anbinden
butWerteAus.addActionListener( new MeinActionAdapter());
this.addWindowListener( new MeinWindowAdapter());
cbMann.addItemListener (new ItemAdapter());
cbFrau.addItemListener (new ItemAdapter());
} // end of construktor
// weitere Methoden ----------------------------------------------
// innere Klassen ------------------------------------------------
class ItemAdapter implements ItemListener
{
public void itemStateChanged(ItemEvent event)
{
Object source = event.getSource();
if (source==cbMann)
{
cbMann.getText("Mann");
}
else if (source==cbFrau)
{
cbFrau.getText("Frau");
}
}
}
/**
* Beschreibung:
* Alle Methoden der Interfaceklassen müssen implementiert werden
* (auch wenn sie leer ist).
*
*/
class MeinActionAdapter implements ActionListener // ActionListener ist ein Interface
{
public void actionPerformed(ActionEvent event)
{
String strKoerpergroesse = tfKoerpergroesse.getText();
String strKoerpergewicht = tfKoerpergewicht.getText();
String strNormalgewicht = new String("Ihr Normalgewicht muss betragen: ");
String strIdealgewicht = new String("Ihr Idealgewicht muss betragen: ");
String strBodyMassIndex = new String("Ihr Body Mass Index muss betragen: ");
try
{
int groesse = Integer.parseInt(strKoerpergroesse);
int gewicht = Integer.parseInt(strKoerpergewicht);
Person bgewicht = new Person(groesse, gewicht, geschlecht);
textAusgabewerte.append(strNormalgewicht+"\n");
textAusgabewerte.append(bgewicht.gibNormalGewichtAus());
textAusgabewerte.append(strIdealgewicht+"\n");
textAusgabewerte.append(bgewicht.gibIdealGewichtAus());
textAusgabewerte.append(strBodyMassIndex+"\n");
textAusgabewerte.append(bgewicht.gibBMIAus());
}
catch (NumberFormatException nfe)
{
textAusgabewerte.setText("Bitte Eingabe korrigieren");
}
}// end of Methode actionPerformed
}// end of inner class MeinActionAdapter
/**
* Beschreibung:
* Alle Methoden der Interfaceklassen müssen implementiert werden
* (auch wenn sie leer ist).
* Der WindowsListener (Ereignisabhörer) wird implementiert, dadurch kann
* das Fenster bei Bedarf die Anklicken der Schaltfläche minimiert,
* vergrößert, maximiert oder geschlossen werden.
*/
class MeinWindowAdapter implements WindowListener
{
public void windowOpened(WindowEvent event)
{
// leerer Implementierungsblock
}
public void windowClosed(WindowEvent event)
{
}
public void windowClosing(WindowEvent event)
{
System.out.println("Fenster geschlossen. Sie koennen dieses Fenster jetzt auch schliessen.");
dispose(); // Ressourcen werden freigegeben
System.exit(0); // Exitus vom Programm
}
public void windowIconified(WindowEvent event)
{
System.out.println("Fenster minimiert");
}
public void windowDeiconified(WindowEvent event)
{
System.out.println("Fenster aufgeklappt");
}
public void windowActivated(WindowEvent event)
{
}
public void windowDeactivated(WindowEvent event)
{
}
}// end of inner class MeinWindowAdapter
}
class Person
{
//Membervariablen
int groesse;
int gewicht;
String geschlecht;
//Konstruktor
public Person (int groesse, int gewicht, String geschlecht)
{
this.groesse=groesse;
this.gewicht=gewicht;
this.geschlecht=geschlecht;
}
public int berechneNormalGewicht()
{
return groesse-100;
}
//Formeln
public void gibNormalGewichtAus()
{
String ret = "";
ret += berechneNormalGewicht();
}
public void gibIdealGewichtAus()
{
String ret = "";
if (geschlecht.equals("Frau"))
ret += berechneNormalGewicht()*0.85;
else
ret += berechneNormalGewicht()*0.90;
}
public void gibBMIAus()
{
String ret = "";
ret += gewicht/(groesse/100.0)*(groesse/100.0);
}
} //end of class Person