"Calories from Fat"
Hier ist die vollständige Applikation, geeignet um sie in eine Entwicklungsumgebung zu kopieren und auszuführen.
import java.awt.* ; import java.awt.event.*; import javax.swing.*; import java.text.*; public class PercentFat extends JFrame implements ActionListener { JLabel heading = new JLabel("Percent of Calories from Fat"); JLabel fatLabel = new JLabel("Enter grams of fat: "); JLabel calLabel = new JLabel("Enter total calories: "); JLabel perLabel = new JLabel("Percent calories from fat: "); JTextField inFat = new JTextField( 7 ); JTextField inCal = new JTextField( 7 ); JTextField outPer = new JTextField( 7 ); JButton doit = new JButton("Do It!"); double calories; // Input: Gesamtkalorien pro Packung double fatGrams; // Input: Gramm Fett pro Packung double percent; // Ergebnis in Prozent public PercentFat() { setTitle( "Calories from Fat" ); setLayout( new FlowLayout() ); add( heading ); add( fatLabel ); add( inFat ); add( calLabel ); add( inCal ); add( perLabel ); add( outPer ); outPer.setEditable( false ); add( doit ); doit.addActionListener( this ); setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } // die Applikation public void calcPercent( ) { percent = ((fatGrams * 9) / calories) * 100 ; } public void actionPerformed( ActionEvent evt) { String userIn ; userIn = inFat.getText() ; fatGrams = Double.parseDouble( userIn ) ; userIn = inCal.getText() ; calories = Double.parseDouble( userIn ) ; calcPercent() ; // die Prozente in einen hübschen String konvertieren und im Ergebnisfeld ausgeben outPer.setText( new DecimalFormat("#0.0##").format(percent) + "%" ); repaint(); } public static void main ( String[] args ) { PercentFat fatApp = new PercentFat() ; fatApp.setSize( 280, 200 ); fatApp.setVisible( true ); } }
Die vorletzte Zeile des Listeners verwendet DecimalFormat
,
damit die Ausgabe besser aussieht.
Wenn der Anwender falsche Daten in die Textfelder eingibt, wird es zu einer Fehlermeldung kommen?