A good answer might be:

Usually a mix of all three.

Adding Components

Use FlowLayout for the layout manager. It puts components into the content pane in the order they are added. Now the GUI components need to be added to the frame in the correct order. (Caution: this is not necessarily the same order in which they are declared.)

To put a label to the left of a component, first add the label, then add the component. But if the frame is too small, the component might be placed in the next row! There are better ways to do this which will be discussed later.



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

public class percentFat extends JFrame implements ActionListener
{
  JLabel title     = 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!");

  int calories ;  // input: total calories per serving
  int fatGrams ;  // input: grams of fat per serving
  double percent; // result: percent of calories from fat

  public percentFat()
  {  
    getContentPane().setLayout( ) ; 

    getContentPane().add(   ) ;
    getContentPane().add(   ) ;
    getContentPane().add(   ) ;
    getContentPane().add(   ) ;
    getContentPane().add(   ) ;
    getContentPane().add(   ) ;
    getContentPane().add(   ) ;
    outPer.setEditable( false );

    getContentPane().add(   ) ;
    doit.addActionListener( this );
  }

   . . . . .

QUESTION 13:

Fill in the blanks by clicking the buttons.