import java.awt.*;
import java.awt.event.*;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.*;
public class Oberflaeche
extends JFrame
implements WindowListener
{
// Definition der Labels
private JLabel LFahrzeug=new JLabel(" Fahrzeug");
private JLabel LDatum=new JLabel(" Datum");
private JLabel LBeleg=new JLabel(" Beleg");
private JLabel Lkm=new JLabel(" km");
private JLabel Lliter=new JLabel(" l");
private JLabel Leuro=new JLabel(" €");
public JLabel LMeldung=new JLabel(" ");
// Definition der Textfelder
public JTextField TFDatum=new JTextField(10);
public JTextField TFkm=new JTextField(10);
public JTextField TFliter=new JTextField(10);
public JTextField TFeuro=new JTextField(10);
// Definition der Dropdownlisten
public JComboBox DDBeleg =new JComboBox();
public JComboBox DDFahrzeug =new JComboBox();
// Definition der Checkbox
private JCheckBox CBvollgetankt =new JCheckBox("nicht vollgetankt?",false);
// Definition der Buttons
private JButton BerfassenEintrag=new JButton("Erfassen");
private JButton BverwaltenAuto=new JButton("Fahrzeug verwalten");
private JButton BdeleteEintrag=new JButton("Eintrag löschen");
private JButton BeditEintrag=new JButton("Eintrag bearbeiten");
private JButton BEnde=new JButton("Ende");
private JButton BverwaltungBelege=new JButton("Belege verwalten");
// Definition der Reiter
JTabbedPane TPReiter = new JTabbedPane();
// Definition der Tabelle
JTable TABverbrauch = new JTable();
// Definition der Panels für die einzelnen Reiter
JPanel PListe = new JPanel();
JPanel PGrafik= new JPanel();
JPanel PKosten=new JPanel();
boolean bolvollgetankt=false; // Schalter ob das Fahrzeug vollgetankt wurde
public Datenbank db1;
public Vector vFahrzeug=new Vector(); // Vektor für die Fahrzeuge
Tabelle tab1;
int iIDFahrzeug; // ID des ausgewählten Fahrzeuges
public Oberflaeche()
{
super("Benzinverwaltung");
try
{
db1=new Datenbank(this);
tab1=new Tabelle(this);
}
catch(SQLException excep)
{
this.LMeldung.setText(excep.toString());
}
addWindowListener(this);
// Definition der Panels
JPanel linksoben=new JPanel();
JPanel linksunten=new JPanel();
JPanel linksgesamt=new JPanel();
JPanel rechtsgesamt=new JPanel();
JPanel rechtsunten=new JPanel();
JPanel gesamt=new JPanel();
// Definition Layouts für die Panels
linksoben.setLayout(new GridLayout(6,2));
linksunten.setLayout(new GridLayout(7,1));
linksgesamt.setLayout(new GridLayout(2,1));
// Zusammenfügen der Elemente für den Panel linksoben
linksoben.add(DDFahrzeug); // Dropdownliste für das Fahrzeug
linksoben.add(LFahrzeug); // Label für das Fahrzeug
linksoben.add(TFDatum); // Textfeld für das Datum
linksoben.add(LDatum); // Label für das Datum
linksoben.add(DDBeleg); // Dropdownliste für die Belegart
linksoben.add(LBeleg); // Label für den Beleg
linksoben.add(TFkm); // Textfeld für die Strecke
linksoben.add(Lkm); // Label für die Strecke
linksoben.add(TFliter); // Textfeld für die Kraftstoffmenge
linksoben.add(Lliter); // Label für die Kraftstoffmenge
linksoben.add(TFeuro); // Textfeld für den Betrag
linksoben.add(Leuro); // Label für den Betrag
// Zusammenfügen der Elemente für den Panel linksunten
linksunten.add(CBvollgetankt);
linksunten.add(BverwaltenAuto);
linksunten.add(BverwaltungBelege);
linksunten.add(BerfassenEintrag);
linksunten.add(BeditEintrag);
linksunten.add(BdeleteEintrag);
linksunten.add(BEnde);
// Festlegen der Tooltips für die Buttons
BverwaltenAuto.setToolTipText("verwalten der Fahrzeuge");
BverwaltungBelege.setToolTipText("Verwalten der Belegarten");
BerfassenEintrag.setToolTipText("erfassen eines neuen Datensatzes");
BeditEintrag.setToolTipText("Ändern eines Eintrages in der Datenbank");
BdeleteEintrag.setToolTipText("Löscht einen Eintrag aus der Datenbank");
BEnde.setToolTipText("Programm verlassen");
// Zusammenfügen des linken Fensterelements
linksgesamt.add(linksoben);
linksgesamt.add(linksunten);
Container contentPane=getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(linksgesamt,"West");
contentPane.add(TPReiter, "Center");
contentPane.add(LMeldung,"South");
// Erzeugen der einzelnen Reiter
TPReiter.add(PListe, "Liste");
TPReiter.add(PGrafik, "Grafik");
TPReiter.add(PKosten, "Kosten");
JScrollPane sp=new JScrollPane(TABverbrauch);
sp.setPreferredSize(new Dimension(470,260));
PListe.add(sp);
// Actionlistener für die Auswahl des Fahrzeuges
DDFahrzeug.addItemListener( new ItemListener()
{
public void itemStateChanged( ItemEvent e )
{
if(e.getStateChange()==ItemEvent.SELECTED)
{
// Ermittelung der Fahrzeug ID aus der Dropdownauswahl
int iauswahl=DDFahrzeug.getSelectedIndex();
String sIDFahrzeug=vFahrzeug.elementAt(iauswahl).toString();
iIDFahrzeug= Integer.parseInt(sIDFahrzeug);
// Aufruf der Methode zum Füllen der Tabellenfelder
tab1.Tabellefuellen(Oberflaeche.this, iIDFahrzeug);
}
}
});
// Listener für die Checkbox
ItemListener listvollgetankt=new ItemListener(){
public void itemStateChanged(ItemEvent e)
{
if(CBvollgetankt.isSelected()==true)
{
bolvollgetankt=true;
}
else
{
bolvollgetankt=false;
}
}
};
// Festlegen des Listeners auf die Checkbox
CBvollgetankt.addItemListener(listvollgetankt);
// Belegen des Verlassen Buttons
BEnde.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
db1.schliessen();
dispose();
System.exit(0);
}
});
// Funktionsbelegung für den Erfassen-Button
BerfassenEintrag.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// Einfügen des Datensatz in die Datenbank
db1.neu(Oberflaeche.this);
// Aufruf der Methode zum Füllen der Tabelle
tab1.Tabellefuellen(Oberflaeche.this, iIDFahrzeug);
// Leeren der Eingabefelder
Oberflaeche.this.TFDatum.setText("");
Oberflaeche.this.TFeuro.setText("");
Oberflaeche.this.TFkm.setText("");
Oberflaeche.this.TFliter.setText("");
}
});
// Funktionsbelegung für den Fahrzeugverwalten-Button
BverwaltenAuto.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
VerwaltenAuto v1;
v1=new VerwaltenAuto(Oberflaeche.this, "Verwalten der Fahrzeuge", true);
v1.setSize(350,200);
v1.show();
}
});
// Funktionsbelegung für den Button zum Verwalten der Belege
BverwaltungBelege.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
VerwaltenBelege v2;
v2=new VerwaltenBelege(Oberflaeche.this, "Verwalten der Belege", true);
v2.setSize(350,270);
v2.show();
}
});
}
public JTable getTable()
{
return TABverbrauch;
}
public void windowOpened(WindowEvent e) {}
// Schliessen des Fensters
public void windowClosing(WindowEvent e)
{
// Schliessen der Datenbankverbindung zum Füllen der Dropdownlisten
db1.schliessen();
// Schliessen der Datenbankverbindung zum Auslesen der Datenstätze
tab1.schliessen();
dispose();
}
// Verlassen des Programms wenn das Fenster geschlossen ist
public void windowClosed(WindowEvent e)
{
System.exit(0);
}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e)
{
// Entfernen aller Elemente aus den beiden Dropdownlisten
Oberflaeche.this.DDBeleg.removeAllItems();
Oberflaeche.this.DDFahrzeug.removeAllItems();
// Methode zum füllen der beiden Dropdownlisten
db1.fuellenfelder(Oberflaeche.this);
}
public void windowDeactivated(WindowEvent e) {}
}