Zum Inhalt springen

Kurs:Java – ein schneller Einstieg/Ausnahmen behandeln/Quellcode

Aus Wikiversity

RabattPanel10

[Bearbeiten]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class RabattPanel10 extends JPanel implements ActionListener {
private JTextField betragFeld  = new JTextField( 7);
private JTextField rabattFeld  = new JTextField( 7);
private JTextField ausgabeFeld = new JTextField( 7);

 void setBetrag( float value) {
  betragFeld.setText( ""+value);
 }

 void setRabatt( float value) {
  rabattFeld.setText( ""+value);
 }

 private static float valueOf( String text) {
 float zahl = 0;

  try   {
         zahl = Float.parseFloat( text);
        }
  catch (NumberFormatException nfe)
        {
         System.out.println( "Unkorrekte Eingabe.");
         System.exit( 1);
        }
  return zahl;
 }

 float calculate() {
 float betragWert = valueOf( betragFeld.getText());
 float rabattWert = valueOf( rabattFeld.getText());

  return betragWert * (1 - rabattWert / 100);
 }

 private static boolean inputOk( String input) {
  try   {
         Float.parseFloat( input);
        }
  catch (NumberFormatException nfe)
        {
         return false;
        }
  return true;
 }

 public void actionPerformed( ActionEvent ae) {
  if (betragFeld.getText().length() < 1)
     {
      ausgabeFeld.setText( "");
      return;
     }
  if (!inputOk(betragFeld.getText()))
     {
      betragFeld.setBackground( Color.red);
      betragFeld.setForeground( Color.yellow);
      return;
     }
  ausgabeFeld.setText( ""+calculate());
 }

 RabattPanel10() {
 JPanel fields = new JPanel();
  fields.setLayout( new BorderLayout());
  fields.add( betragFeld,  BorderLayout.NORTH);
  fields.add( rabattFeld,  BorderLayout.CENTER);
  fields.add( ausgabeFeld, BorderLayout.SOUTH);

 JPanel labels = new JPanel();
  labels.setLayout( new BorderLayout());
  labels.add( new JLabel( "Betrag"), BorderLayout.NORTH);
  labels.add( new JLabel( "Rabatt"), BorderLayout.CENTER);
  labels.add( new JLabel( "Endbetrag"), BorderLayout.SOUTH);

  this.setLayout( new BorderLayout());
  this.add( labels, BorderLayout.WEST);
  this.add( fields, BorderLayout.EAST);

JButton button = new JButton( "berechnen");
  button.addActionListener( this);
  this.add( button, BorderLayout.SOUTH);
 }
}

RabattPanel11

[Bearbeiten]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class RabattPanel11 extends JPanel implements ActionListener {
private JTextField betragFeld  = new JTextField( 7);
private JTextField rabattFeld  = new JTextField( 7);
private JTextField ausgabeFeld = new JTextField( 7);

 void setBetrag( float value) {
  betragFeld.setText( ""+value);
 }

 void setRabatt( float value) {
  rabattFeld.setText( ""+value);
 }

 private static float valueOf( String text) {
 float zahl = 0;

  try   {
         zahl = Float.parseFloat( text);
        }
  catch (NumberFormatException nfe)
        {
         System.out.println( "Unkorrekte Eingabe.");
         System.exit( 1);
        }
  return zahl;
 }

 float calculate() {
 float betragWert = valueOf( betragFeld.getText());
 float rabattWert = valueOf( rabattFeld.getText());

  return betragWert * (1 - rabattWert / 100);
 }

 private static boolean inputOk( String input) {
  try   {
         Float.parseFloat( input);
        }
  catch (NumberFormatException nfe)
        {
         return false;
        }
  return true;
 }

 public void actionPerformed( ActionEvent ae) {
  if (betragFeld.getText().length() < 1)
     {
      ausgabeFeld.setText( "");
      return;
     }
  if (!inputOk(betragFeld.getText()))
     {
      betragFeld.setBackground( Color.red);
      betragFeld.setForeground( Color.yellow);
      betragFeld.requestFocus();
      return;
     }
  if (rabattFeld.getText().length() < 1)
     {
      rabattFeld.setText( "");
      return;
     }
  if (!inputOk(rabattFeld.getText()))
     {
      rabattFeld.setBackground( Color.red);
      rabattFeld.setForeground( Color.yellow);
      rabattFeld.requestFocus();
      return;
     }
  ausgabeFeld.setText( ""+calculate());
 }

 RabattPanel11() {
 JPanel fields = new JPanel();
  fields.setLayout( new BorderLayout());
  fields.add( betragFeld,  BorderLayout.NORTH);
  fields.add( rabattFeld,  BorderLayout.CENTER);
  fields.add( ausgabeFeld, BorderLayout.SOUTH);

 JPanel labels = new JPanel();
  labels.setLayout( new BorderLayout());
  labels.add( new JLabel( "Betrag"), BorderLayout.NORTH);
  labels.add( new JLabel( "Rabatt"), BorderLayout.CENTER);
  labels.add( new JLabel( "Endbetrag"), BorderLayout.SOUTH);

  this.setLayout( new BorderLayout());
  this.add( labels, BorderLayout.WEST);
  this.add( fields, BorderLayout.EAST);

JButton button = new JButton( "berechnen");
  button.addActionListener( this);
  this.add( button, BorderLayout.SOUTH);
 }
}

RabattPanel12

[Bearbeiten]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class RabattPanel12 extends JPanel implements ActionListener {
private JTextField betragFeld  = new JTextField( 7);
private JTextField rabattFeld  = new JTextField( 7);
private JTextField ausgabeFeld = new JTextField( 7);

 void setBetrag( float value) {
  betragFeld.setText( ""+value);
 }

 void setRabatt( float value) {
  rabattFeld.setText( ""+value);
 }

 private static float valueOf( String text) {
 float zahl = 0;

  try   {
         zahl = Float.parseFloat( text);
        }
  catch (NumberFormatException nfe)
        {
         System.out.println( "Unkorrekte Eingabe.");
         System.exit( 1);
        }
  return zahl;
 }

 float calculate() {
 float betragWert = valueOf( betragFeld.getText());
 float rabattWert = valueOf( rabattFeld.getText());

  return betragWert * (1 - rabattWert / 100);
 }

 private static boolean inputOk( String input) {
  try   {
         Float.parseFloat( input);
        }
  catch (NumberFormatException nfe)
        {
         return false;
        }
  return true;
 }

  private void setColor( JTextField field, boolean error) {
   if (error)
      {
       field.setBackground( Color.red);
       field.setForeground( Color.yellow);
       field.requestFocus();
       return;
      }
   field.setBackground( Color.white);
   field.setForeground( Color.black);
  }

 public void actionPerformed( ActionEvent ae) {
  if (betragFeld.getText().length() < 1)
     {
      ausgabeFeld.setText( "");
      setColor( betragFeld, false);
      return;
     }
  if (!inputOk(betragFeld.getText()))
     {
      setColor( betragFeld, true);
      return;
     }
  if (rabattFeld.getText().length() < 1)
     {
      rabattFeld.setText( "");
      setColor( rabattFeld, false);
      return;
     }
  if (!inputOk(rabattFeld.getText()))
     {
      setColor( rabattFeld, true);
      return;
     }
  setColor( betragFeld, false);
  setColor( rabattFeld, false);
  ausgabeFeld.setText( ""+calculate());
 }

 RabattPanel12() {
 JPanel fields = new JPanel();
  fields.setLayout( new BorderLayout());
  fields.add( betragFeld,  BorderLayout.NORTH);
  fields.add( rabattFeld,  BorderLayout.CENTER);
  fields.add( ausgabeFeld, BorderLayout.SOUTH);

 JPanel labels = new JPanel();
  labels.setLayout( new BorderLayout());
  labels.add( new JLabel( "Betrag"), BorderLayout.NORTH);
  labels.add( new JLabel( "Rabatt"), BorderLayout.CENTER);
  labels.add( new JLabel( "Endbetrag"), BorderLayout.SOUTH);

  this.setLayout( new BorderLayout());
  this.add( labels, BorderLayout.WEST);
  this.add( fields, BorderLayout.EAST);

JButton button = new JButton( "berechnen");
  button.addActionListener( this);
  this.add( button, BorderLayout.SOUTH);
 }
}

RabattPanel13

[Bearbeiten]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class RabattPanel13 extends JPanel implements ActionListener {
private JTextField betragFeld  = new JTextField( 7);
private JTextField rabattFeld  = new JTextField( 7);
private JTextField ausgabeFeld = new JTextField( 7);

 void setBetrag( float value) {
  betragFeld.setText( ""+value);
 }

 void setRabatt( float value) {
  rabattFeld.setText( ""+value);
 }

 private static float valueOf( String text) {
 float zahl = 0;

  try   {
         zahl = Float.parseFloat( text);
        }
  catch (NumberFormatException nfe)
        {
         System.out.println( "Unkorrekte Eingabe.");
         System.exit( 1);
        }
  return zahl;
 }

 float calculate() {
 float betragWert = valueOf( betragFeld.getText());
 float rabattWert = valueOf( rabattFeld.getText());

  return betragWert * (1 - rabattWert / 100);
 }

 private static boolean inputOk( String input) {
  try   {
         Float.parseFloat( input);
        }
  catch (NumberFormatException nfe)
        {
         return false;
        }
  return true;
 }

  private void setColor( JTextField field, boolean error) {
   if (error)
      {
       field.setBackground( Color.red);
       field.setForeground( Color.yellow);
       return;
      }
   field.setBackground( Color.white);
   field.setForeground( Color.black);
  }

 public void actionPerformed( ActionEvent ae) {
 JTextField requesterror = null;
 JTextField requestempty = null;

  ausgabeFeld.setText( "");
  if (!inputOk(betragFeld.getText()))
     {
      if   (betragFeld.getText().length() < 1)
           {
            setColor( betragFeld, false);
            requestempty = betragFeld;
           }
      else {
            setColor( betragFeld, true);
            requesterror = betragFeld;
           }
     }
  if (!inputOk(rabattFeld.getText()))
     {
      if   (rabattFeld.getText().length() < 1)
           {
            setColor( rabattFeld, false);
            if (requestempty == null &&
                requesterror == null)
                requestempty = rabattFeld;
           }
      else {
            setColor( rabattFeld, true);
            if (requesterror == null)
                requesterror = rabattFeld;
           }
     }
  if (requesterror != null)
     {
      requesterror.requestFocus();
      return;
     }
  if (requestempty != null)
     {
      requestempty.requestFocus();
      return;
     }
  setColor( betragFeld, false);
  setColor( rabattFeld, false);
  ausgabeFeld.setText( ""+calculate());
  betragFeld.requestFocus();
 }

 RabattPanel13() {
 JPanel fields = new JPanel();
  fields.setLayout( new BorderLayout());
  fields.add( betragFeld,  BorderLayout.NORTH);
  fields.add( rabattFeld,  BorderLayout.CENTER);
  fields.add( ausgabeFeld, BorderLayout.SOUTH);

 JPanel labels = new JPanel();
  labels.setLayout( new BorderLayout());
  labels.add( new JLabel( "Betrag"), BorderLayout.NORTH);
  labels.add( new JLabel( "Rabatt"), BorderLayout.CENTER);
  labels.add( new JLabel( "Endbetrag"), BorderLayout.SOUTH);

  this.setLayout( new BorderLayout());
  this.add( labels, BorderLayout.WEST);
  this.add( fields, BorderLayout.EAST);

JButton button = new JButton( "berechnen");
  button.addActionListener( this);
  this.add( button, BorderLayout.SOUTH);
 }
}


RabattPanel14

[Bearbeiten]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class RabattPanel14 extends JPanel implements ActionListener {
private JTextField betragFeld  = new JTextField( 7);
private JTextField rabattFeld  = new JTextField( 7);
private JTextField ausgabeFeld = new JTextField( 7);
private float betrag = 0;
private float rabatt = 0;
private float result = 0;

 public float getBetrag() {
  return betrag;
 }

 public float getRabatt() {
  return rabatt;
 }

 public float getResult() {
  return result;
 }

 void setBetrag( float value) {
  betragFeld.setText( ""+value);
 }

 void setRabatt( float value) {
  rabattFeld.setText( ""+value);
 }

 private static float valueOf( String text) {
 float zahl = 0;

  try   {
         zahl = Float.parseFloat( text);
        }
  catch (NumberFormatException nfe)
        {
         System.out.println( "Unkorrekte Eingabe.");
         System.exit( 1);
        }
  return zahl;
 }

 private void calculate() {
  betrag = valueOf( betragFeld.getText());
  rabatt = valueOf( rabattFeld.getText());
  result = betrag * (1 - rabatt / 100);
 }

 private static boolean inputOk( String input) {
  try   {
         Float.parseFloat( input);
        }
  catch (NumberFormatException nfe)
        {
         return false;
        }
  return true;
 }

  private void setColor( JTextField field, boolean error) {
   if (error)
      {
       field.setBackground( Color.red);
       field.setForeground( Color.yellow);
       return;
      }
   field.setBackground( Color.white);
   field.setForeground( Color.black);
  }

 public void actionPerformed( ActionEvent ae) {
 JTextField requesterror = null;
 JTextField requestempty = null;

  ausgabeFeld.setText( "");
  if (!inputOk(betragFeld.getText()))
     {
      if   (betragFeld.getText().length() < 1)
           {
            setColor( betragFeld, false);
            requestempty = betragFeld;
           }
      else {
            setColor( betragFeld, true);
            requesterror = betragFeld;
           }
     }
  if (!inputOk(rabattFeld.getText()))
     {
      if   (rabattFeld.getText().length() < 1)
           {
            setColor( rabattFeld, false);
            if ((requestempty == null) &&
                (requesterror == null))
                requestempty = rabattFeld;
           }
      else {
            setColor( rabattFeld, true);
            if (requesterror == null)
                requesterror = rabattFeld;
           }
     }
  if (requesterror != null)
     {
      requesterror.requestFocus();
      return;
     }
  if (requestempty != null)
     {
      requestempty.requestFocus();
      return;
     }
  setColor( betragFeld, false);
  setColor( rabattFeld, false);
  calculate();
  ausgabeFeld.setText( ""+result);
  betragFeld.requestFocus();
 }

 RabattPanel14() {
 JPanel fields = new JPanel();
  fields.setLayout( new BorderLayout());
  fields.add( betragFeld,  BorderLayout.NORTH);
  fields.add( rabattFeld,  BorderLayout.CENTER);
  fields.add( ausgabeFeld, BorderLayout.SOUTH);

 JPanel labels = new JPanel();
  labels.setLayout( new BorderLayout());
  labels.add( new JLabel( "Betrag"), BorderLayout.NORTH);
  labels.add( new JLabel( "Rabatt"), BorderLayout.CENTER);
  labels.add( new JLabel( "Endbetrag"), BorderLayout.SOUTH);

  this.setLayout( new BorderLayout());
  this.add( labels, BorderLayout.WEST);
  this.add( fields, BorderLayout.EAST);

 JButton button = new JButton( "berechnen");
  button.addActionListener( this);
  this.add( button, BorderLayout.SOUTH);
 }
}