zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

JLabel fatLabel    mit    JTextField inFat

JLabel calLabel    mit    JTextField inCal

JLabel perLabel    mit    JTextField outPer

JPanels Komponenten hinzufügen

GUI mit Panels

Die Idee ist es fünf Panels zu haben, eines für jedes Paar Label und Textfeld und ein Panel für die Überschrift und für den Button. Die Abbildung zeigt diese Gruppierung. (Die Linien um die Panels erscheinen nicht in der tatsachlichen GUI.)

Wir verwenden add(), um Komponenten einem Panel hinzufügen. FlowLayout ist der Standard Layoutmanager für JPanel. Wir verwenden setLayout() nur, wenn wir einen anderen Layoutmanager wollen.


public class PercentFatPan 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!");

  // Neu: fünf Panels

  JPanel hedPanel = new JPanel();
  JPanel fatPanel = new JPanel();
  JPanel calPanel = new JPanel();
  JPanel perPanel = new JPanel();
  JPanel butPanel = new JPanel();

  public PercentFatPanel()
  {
    setTitle( "Calories from Fat" );
    outPer.setEditable( false );
    setLayout( new FlowLayout() );   // den Layoutmanager für den JFrame setzen

    // Neu: jedem Panel Komponenten hinzufügen

    hedPanel.add( heading );

    fatPanel.add(  );
    fatPanel.add(  );

    calPanel.add(  );
    calPanel.add(  );

    perPanel.add(  );
    perPanel.add(  );

    butPanel.add( doit );

   . . . . .

 }

FRAGE 5:

Wir entscheiden welche Komponenten welchem Panel hinzugefügt werden sollten. Klicken dann auf den Button, um zu sehen, ob wir richtiglagen.

Bis jetzt wurden die Labels, die Textfelder und der Button den fünf Panels hinzugefügt, aber die Panels wurden noch nicht dem Frame hinzugefügt.

zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite