import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Math;
import java.awt.Graphics.*;
import java.applet.Applet;
public class AutoApplet extends JApplet {
Auto Wagen1 = new Auto();
Auto Wagen2 = new Auto();
Color Gruen = new Color(0,240,0);
Color Rot = new Color(255,0,0);
Color Schwarz = new Color(0,0,0);
public void init() {
setSize(500,500);
Wagen1.init(this);
GridBagLayout gb1 = new GridBagLayout();
setLayout(gb1);
GridBagConstraints gbc1 = new GridBagConstraints();
gbc1.gridx = 0;
gbc1.gridy = 0;
gbc1.gridwidth = 3;
gbc1.gridheight = 1;
gbc1.weightx = 100;
gbc1.weighty = 100;
gbc1.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.Wagen, gbc1);
add (Wagen1.Wagen);
Wagen1.Wagen.addItem("Bitte Fahrzeug wählen...");
Wagen1.Wagen.addItem("Porsche 911 Turbo Coupé");
Wagen1.Wagen.addItem("Mercedes B 200");
Wagen1.Wagen.addItem("3");
//Wagen1.Wagen initialisiert und Position zugewiesen...
GridBagConstraints gbc2 = new GridBagConstraints();
gbc2.gridx = 1;
gbc2.gridy = 3;
gbc2.gridwidth = 2;
gbc2.gridheight = 1;
gbc2.weightx = 100;
gbc2.weighty = 100;
gbc2.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.l5, gbc2);
add(Wagen1.l5);
GridBagConstraints gbc3 = new GridBagConstraints();
gbc3.gridx = 0;
gbc3.gridy = 3;
gbc3.gridwidth = 1;
gbc3.gridheight = 1;
gbc3.weightx = 100;
gbc3.weighty = 100;
gbc3.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.t3, gbc3);
add(Wagen1.t3);
GridBagConstraints gbc4 = new GridBagConstraints();
gbc4.gridx = 0;
gbc4.gridy = 1;
gbc4.gridwidth = 1;
gbc4.gridheight = 1;
gbc4.weightx = 100;
gbc4.weighty = 100;
gbc4.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.t1, gbc4);
add(Wagen1.t1);
GridBagConstraints gbc5 = new GridBagConstraints();
gbc5.gridx = 1;
gbc5.gridy = 1;
gbc5.gridwidth = 1;
gbc5.gridheight = 1;
gbc5.weightx = 100;
gbc5.weighty = 100;
gbc5.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.l1, gbc5);
add(Wagen1.l1);
GridBagConstraints gbc6 = new GridBagConstraints();
gbc6.gridx = 3;
gbc6.gridy = 1;
gbc6.gridwidth = 1;
gbc6.gridheight = 1;
gbc6.weightx = 100;
gbc6.weighty = 100;
gbc6.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.b1, gbc6);
add(Wagen1.b1);
GridBagConstraints gbc7 = new GridBagConstraints();
gbc7.gridx = 0;
gbc7.gridy = 2;
gbc7.gridwidth = 1;
gbc7.gridheight = 1;
gbc7.weightx = 100;
gbc7.weighty = 100;
gbc7.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.t2, gbc7);
add(Wagen1.t2);
GridBagConstraints gbc8 = new GridBagConstraints();
gbc8.gridx = 1;
gbc8.gridy = 2;
gbc8.gridwidth = 1;
gbc8.gridheight = 1;
gbc8.weightx = 100;
gbc8.weighty = 100;
gbc8.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.l2, gbc8);
add(Wagen1.l2);
GridBagConstraints gbc9 = new GridBagConstraints();
gbc9.gridx = 3;
gbc9.gridy = 2;
gbc9.gridwidth = 1;
gbc9.gridheight = 1;
gbc9.weightx = 100;
gbc9.weighty = 100;
gbc9.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.b2, gbc9);
add(Wagen1.b2);
GridBagConstraints gbc10 = new GridBagConstraints();
gbc10.gridx = 2;
gbc10.gridy = 6;
gbc10.gridwidth = 2;
gbc10.gridheight = 1;
gbc10.weightx = 100;
gbc10.weighty = 100;
gbc10.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.FuellstandsAnzeige, gbc10);
add(Wagen1.FuellstandsAnzeige);
GridBagConstraints gbc11 = new GridBagConstraints();
gbc11.gridx = 1;
gbc11.gridy = 4;
gbc11.gridwidth = 2;
gbc11.gridheight = 2;
gbc11.weightx = 100;
gbc11.weighty = 100;
gbc11.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.FuellstandsWarnung, gbc11);
add(Wagen1.FuellstandsWarnung);
GridBagConstraints gbc12 = new GridBagConstraints();
gbc12.gridx = 2;
gbc12.gridy = 7;
gbc12.gridwidth = 2;
gbc12.gridheight = 1;
gbc12.weightx = 100;
gbc12.weighty = 100;
gbc12.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.KilometerStand, gbc12);
add(Wagen1.KilometerStand);
GridBagConstraints gbc13 = new GridBagConstraints();
gbc13.gridx = 2;
gbc13.gridy = 9;
gbc13.gridwidth = 1;
gbc13.gridheight = 1;
gbc13.weightx = 100;
gbc13.weighty = 100;
gbc13.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.Kostenzeiger, gbc13);
add(Wagen1.Kostenzeiger);
GridBagConstraints gbc14 = new GridBagConstraints();
gbc14.gridx = 0;
gbc14.gridy = 11;
gbc14.gridwidth = 3;
gbc14.gridheight = 1;
gbc14.weightx = 100;
gbc14.weighty = 100;
gbc14.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.l3, gbc14);
add(Wagen1.l3);
GridBagConstraints gbc15 = new GridBagConstraints();
gbc15.gridx = 0;
gbc15.gridy = 12;
gbc15.gridwidth = 1;
gbc15.gridheight = 1;
gbc15.weightx = 100;
gbc15.weighty = 100;
gbc15.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.TankReset, gbc15);
add(Wagen1.TankReset);
GridBagConstraints gbc16 = new GridBagConstraints();
gbc16.gridx = 1;
gbc16.gridy = 12;
gbc16.gridwidth = 1;
gbc16.gridheight = 1;
gbc16.weightx = 100;
gbc16.weighty = 100;
gbc16.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.KmReset, gbc16);
add(Wagen1.KmReset);
GridBagConstraints gbc17 = new GridBagConstraints();
gbc17.gridx = 2;
gbc17.gridy = 12;
gbc17.gridwidth = 2;
gbc17.gridheight = 1;
gbc17.weightx = 100;
gbc17.weighty = 100;
gbc17.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.GeldReset, gbc17);
add(Wagen1.GeldReset);
GridBagConstraints gbc18 = new GridBagConstraints();
gbc18.gridx = 0;
gbc18.gridy = 6;
gbc18.gridwidth = 2;
gbc18.gridheight = 1;
gbc18.weightx = 100;
gbc18.weighty = 100;
gbc18.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.l6, gbc18);
add(Wagen1.l6);
GridBagConstraints gbc19 = new GridBagConstraints();
gbc19.gridx = 0;
gbc19.gridy = 7;
gbc19.gridwidth = 2;
gbc19.gridheight = 1;
gbc19.weightx = 100;
gbc19.weighty = 100;
gbc19.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.l7, gbc19);
add(Wagen1.l7);
GridBagConstraints gbc20 = new GridBagConstraints();
gbc20.gridx = 0;
gbc20.gridy = 8;
gbc20.gridwidth = 2;
gbc20.gridheight = 1;
gbc20.weightx = 100;
gbc20.weighty = 100;
gbc20.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.l8, gbc20);
add(Wagen1.l8);
GridBagConstraints gbc21 = new GridBagConstraints();
gbc21.gridx = 2;
gbc21.gridy = 8;
gbc21.gridwidth = 2;
gbc21.gridheight = 1;
gbc21.weightx = 100;
gbc21.weighty = 100;
gbc21.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1.Verbrauch, gbc21);
add(Wagen1.Verbrauch);
GridBagConstraints gbc22 = new GridBagConstraints();
gbc22.gridx = 2;
gbc22.gridy = 1;
gbc22.gridwidth = 1;
gbc22.gridheight = 2;
gbc22.weightx = 100;
gbc22.weighty = 100;
gbc22.fill = GridBagConstraints.BOTH;
gb1.setConstraints(Wagen1, gbc22);
add(Wagen1);
Wagen1.setLayout(new BorderLayout());
Wagen1.getGraphics();
}
public class Auto extends JPanel{
double Tankinhalt, VerbrauchAuf100km, MaxTankinhalt, KmStand, Fahrtkosten, Strecke, Tankvorgang, Spritpreis;
JTextField t1 = new JTextField("0.00", 5);
JTextField t2 = new JTextField("0.00", 5);
JTextField t3 = new JTextField("0.00", 5);
JLabel l1 = new JLabel(" km fahren");
JLabel l2 = new JLabel(" l tanken");
JLabel FuellstandsAnzeige = new JLabel(" 0.00 ");
JLabel FuellstandsWarnung = new JLabel(" ");
JLabel KilometerStand = new JLabel(" ");
JLabel l3 = new JLabel("Auf 0 setzen: ");
JLabel Kostenzeiger = new JLabel("0.00 €");
JLabel l5 = new JLabel (" Benzinpreis €/l");
JLabel l6 = new JLabel ("Tankfülle: ");
JLabel l7 = new JLabel ("Gefahrene Km: ");
JLabel l8 = new JLabel ("Verbrauch auf 100km: ");
JLabel Verbrauch = new JLabel (" 0.00 l ");
JButton b1 = new JButton("OK");
JButton b2 = new JButton("OK");
JButton TankReset = new JButton("Tank");
JButton KmReset = new JButton("Km-Stand");
JButton GeldReset = new JButton("Benzinkosten");
Choice Wagen = new Choice();
//JPanel Draw = new JPanel();
JApplet applet;
public void init (JApplet ja) {
applet = ja;
Tankinhalt = 0.0;
VerbrauchAuf100km = 0.0;
MaxTankinhalt = 0.0;
KmStand = 0.0;
Fahrtkosten = 0.0;
Strecke = 0.0;
Tankvorgang = 0.0;
Spritpreis = 0.0;
update();
Wagen.addItemListener (new WagenItemListener());
b1.addActionListener (new b1Listener());
b2.addActionListener (new b2Listener());
TankReset.addActionListener (new TankResetListener());
KmReset.addActionListener (new KmResetListener());
GeldReset.addActionListener (new GeldResetListener());
// t1.addTextListener(new StreckenListener());
// t2.addTextListener(new TankListener());
// t3.addTextListener(new PreisListener());
}
void update() {
Tankinhalt = Math.round(Tankinhalt*100)/100.0;
FuellstandsAnzeige.setText (Double.toString (Tankinhalt)+(" Liter ")+("/ ")+(MaxTankinhalt)+(" Liter"));
FuellstandsWarnung.setFont (new Font("Times New Roman", Font.PLAIN, 28));
if ((Tankinhalt)<=0) {
FuellstandsWarnung.setForeground(Rot);
FuellstandsWarnung.setText (" Der Tank ist LEER!");
}
else if ((Tankinhalt)>0 && (Tankinhalt)<(MaxTankinhalt))
FuellstandsWarnung.setText (" ");
else {
FuellstandsWarnung.setForeground(Gruen);
FuellstandsWarnung.setText (" Der Tank ist VOLL!");
}
KmStand = Math.round(KmStand*100)/100.0;
KilometerStand.setText (Double.toString (KmStand)+(" Km"));
Fahrtkosten = Math.round(Fahrtkosten*100)/100.0;
Kostenzeiger.setText (Double.toString (Fahrtkosten)+(" € "));
Verbrauch.setText (Double.toString (VerbrauchAuf100km)+(" l "));
// loeschen();
// zeichnen();
}
//Zeichnen-Methode so umbenannt, daß sie paintComponent überschreibt
public void paintComponent(Graphics g) {
int Leermenge, i;
Leermenge = (int)(75*(MaxTankinhalt - Tankinhalt)/MaxTankinhalt);
//Graphics g = Draw.getGraphics();
for (i = 1; i <= 21 ; i++) {
g.setColor(Schwarz);
g.fillRect(20, 10, 70, 85);
g.setColor(Gruen);
g.fillRect(25, 15, 60, 75);
g.setColor(Color.red);
g.fillRect(25, 15, 60, Leermenge);
}
}
class WagenItemListener implements ItemListener {
public void itemStateChanged(ItemEvent ie) {
Choice Wagen = (Choice) ie.getItemSelectable();
String str1 = Wagen.getSelectedItem();
if (str1==("Porsche 911 Turbo Coupé")) {
MaxTankinhalt = 67;
Tankinhalt = 0.0;
KmStand = 0.0;
VerbrauchAuf100km = 13.6;
update();
applet.repaint();
}
else if (str1==("Mercedes B 200")) {
MaxTankinhalt = 56;
Tankinhalt = 0.0;
KmStand = 0.0;
VerbrauchAuf100km = 7.4;
update();
applet.repaint();
}
else if (str1==("3")) {
MaxTankinhalt = 76;
Tankinhalt = 0.0;
VerbrauchAuf100km = 0.0;
}
}
}
class b1Listener implements ActionListener {
public void actionPerformed(ActionEvent a) {
Strecke = Double.valueOf(t1.getText());
if (((Strecke)*(VerbrauchAuf100km)/100)<=(Tankinhalt)) {
KmStand = KmStand + Strecke;
Tankinhalt = Tankinhalt - (Strecke*VerbrauchAuf100km/100);
}
else {
KmStand = KmStand + (Tankinhalt/VerbrauchAuf100km*100);
Tankinhalt = 0;
}
update();
applet.repaint();
}
}
class b2Listener implements ActionListener {
public void actionPerformed(ActionEvent a) {
Tankvorgang = Double.valueOf(t2.getText());
Spritpreis = Double.valueOf(t3.getText());
if ((MaxTankinhalt)>=(Tankinhalt+Tankvorgang)) {
Tankinhalt = Tankinhalt + Tankvorgang;
Fahrtkosten = Fahrtkosten + Tankvorgang*Spritpreis;
}
else {
Fahrtkosten = Fahrtkosten + ((MaxTankinhalt - Tankinhalt) * Spritpreis);
Tankinhalt = MaxTankinhalt;
}
update();
applet.repaint();
}
}
class TankResetListener implements ActionListener {
public void actionPerformed(ActionEvent a) {
Tankinhalt = 0;
update();
applet.repaint();
}
}
class KmResetListener implements ActionListener {
public void actionPerformed(ActionEvent a) {
KmStand = 0;
update();
applet.repaint();
}
}
class GeldResetListener implements ActionListener {
public void actionPerformed(ActionEvent a) {
Fahrtkosten = 0;
update();
applet.repaint();
}
}
//Wird nicht gebraucht, da man in Swing paintComponent überschreibt und nicht paint();
/*public void paint(Graphics g) {
zeichnen();
}*/
//---------------------------- überflüssig durch JTextField----------------------------------------------------------
class StreckenListener implements TextListener {
public void textValueChanged(TextEvent te) {
TextField t1 = (TextField)te.getSource();
Strecke = Double.valueOf(t1.getText());
}
}
class TankListener implements TextListener {
public void textValueChanged(TextEvent te) {
TextField t2 = (TextField)te.getSource();
Tankvorgang = Double.valueOf(t2.getText());
}
}
class PreisListener implements TextListener {
public void textValueChanged(TextEvent te) {
TextField t3 = (TextField)te.getSource();
Spritpreis = Double.valueOf(t3.getText());
}
}
}
}