import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
/**
* Sample application using Frame.
*
* @author Wolfgang Hackenbroch
* @version 1.00 04/05/22
*/
public class DBCockpitFrame extends JFrame implements ActionListener, AdjustmentListener {
public DBQuery myDBQuery;
public ParameterFeld myParameter;
public ParameterFeld myParameterKU;
public JComboBox cbKunde;
public JComboBox cbJahrKS;
public JComboBox cbJahrUS;
public JScrollBar sbEast;
public String [] stringArray;
// Konstruktor (teilweise vom JCreator erzeugt)
public DBCockpitFrame() throws Exception{
MenuBar menuBar = new MenuBar();
Menu menuFile = new Menu();
MenuItem menuFileExit = new MenuItem();
menuFile.setLabel("File");
menuFileExit.setLabel("Exit");
// Add action listener.for the menu button
menuFileExit.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
DBCockpitFrame.this.windowClosed();
}
}
);
menuFile.add(menuFileExit);
menuBar.add(menuFile);
setTitle("DBCockpit");
setMenuBar(menuBar);
setSize(new Dimension(800, 400));
// Add window listener.
this.addWindowListener
(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
DBCockpitFrame.this.windowClosed();
}
}
);
// ********************************************************************
// Eigener Code zur Erzeugung des GUIs ab hier
// ********************************************************************
// Panel für den oberen Bereich des Frames (2 Spalten)
JPanel jpOben = new JPanel(new GridLayout(0,2));
// Panel für die Unternehmenssicht
JPanel jpUS = new JPanel(new BorderLayout(10, 10));
jpUS.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
// Parameter-Feld aus Fallstudie 1 wird hier wiederverwendet
ParameterFeld myParameter = new ParameterFeld();
jpUS.add(new JLabel("Unternehmenssicht"), BorderLayout.NORTH);
jpUS.add(new JLabel("<Visualisierung>"), BorderLayout.WEST);
jpUS.add(myParameter, BorderLayout.CENTER);
// Panel für die Kundensicht
JPanel jpKS = new JPanel(new BorderLayout(10, 10));
jpKS.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
// Parameter-Feld für die Kundensicht erzeugen
ParameterFeld myParameterKU = new ParameterFeld();
jpKS.add(new JLabel("Kundensicht"), BorderLayout.NORTH);
jpKS.add(new JLabel("<Visualisierung>"), BorderLayout.WEST);
jpKS.add(myParameterKU, BorderLayout.CENTER);
// Beide Panels zusammenfügen
jpOben.add(jpKS);
jpOben.add(jpUS);
// Panel für den unteren Bereich des Frames (4 Spalten)
JPanel jpUnten = new JPanel(new GridLayout(0,4));
// Comboboxen für die Auswahl erzeugen
// (die Comboboxen müssen noch mit den korrekten Werten gefüllt werden!)
JComboBox cbKunde = new JComboBox();
//Erzeugen einer ScrollBar zur Auswahl
sbEast = new JScrollBar(JScrollBar.VERTICAL, 0, 3, 0, 255);
sbEast.addAdjustmentListener(this);
cbKunde.add(sbEast, BorderLayout.EAST);
JComboBox cbJahrKS = new JComboBox();
cbJahrKS.addItem("1999");
cbJahrKS.addItem("2000");
cbJahrKS.addItem("2001");
cbJahrKS.addItem("2002");
cbJahrKS.addItem("2003");
cbJahrKS.addItem("Alle");
JComboBox cbJahrUS = new JComboBox();
cbJahrUS.addItem("1999");
cbJahrUS.addItem("2000");
cbJahrUS.addItem("2001");
cbJahrUS.addItem("2002");
cbJahrUS.addItem("2003");
cbJahrUS.addItem("Alle");
// 3 Panels für Auswahl Kunde, Jahr (Kunde) und Jahr (Unternehmen)
JPanel jpKunde = new JPanel();
jpKunde.add(new JLabel("Kunde: "));
jpKunde.add(cbKunde);
jpUnten.add(jpKunde);
JPanel jpJahr = new JPanel();
jpJahr.add(new JLabel("Jahr: "));
jpJahr.add(cbJahrKS);
jpUnten.add(jpJahr);
JPanel jpUnternehmen = new JPanel();
jpUnternehmen.add(new JLabel("Jahr: "));
jpUnternehmen.add(cbJahrUS);
jpUnten.add(jpUnternehmen);
// Panel für die 3 Buttons anlegen
JPanel jpButtons = new JPanel(new GridLayout(3,0));
// Buttons erzeugen
JButton buConnect = new JButton("DB Verbinden");
buConnect.setActionCommand("A");
buConnect.addActionListener(this);
jpButtons.add(buConnect);
JButton buClose = new JButton("DB Schließen");
buClose.setActionCommand("B");
buClose.addActionListener(this);
jpButtons.add(buClose);
JButton buAbfrage = new JButton("Summe Prämien");
buAbfrage.setActionCommand("P");
buAbfrage.addActionListener(this);
jpButtons.add(buAbfrage);
// Button Panel hinzufügen
jpUnten.add(jpButtons);
// Hauptframe füllen mit den 3 Hauptelementen der Application
this.getContentPane().add(jpOben, BorderLayout.CENTER);
this.getContentPane().add(jpUnten, BorderLayout.SOUTH); // Default
this.getRootPane().setDefaultButton(buConnect);
}
// ********************************************************************
// Hier findet das Eventhandling statt
// ********************************************************************
public void actionPerformed(ActionEvent e) {
// Button "DB Verbinden"
if(e.getActionCommand().equals("A")) {
try {
// Entsprechende Methoden aus der Datenschicht aufrufen
myDBQuery = new DBQuery();
myDBQuery.testCon();
myDBQuery.befuelleArray();
for(int i=0;i<238;i++) {
cbKunde.addItem("Hirsch"); //(String)myDBQuery.tab[i]
}
cbKunde.setSelectedIndex(0);
}
catch (Exception exc) {
exc.printStackTrace();
}
}
// Button "DB Schließen"
if(e.getActionCommand().equals("B")) {
try {
// Entsprechende Methoden aus der Datenschicht aufrufen
myDBQuery.closeCon();
}
catch (Exception exc) {
exc.printStackTrace();
}
}
if (e.getActionCommand().equals("P")) {
try{
String s = "Annemarie Mangold"; //Auslesen aus ComboBox
StringTokenizer st = new StringTokenizer(s);
String [] stringArray =new String[2];
int i=0;
while (st.hasMoreTokens()) {
stringArray[i++] = st.nextToken();
System.out.println(stringArray[0]);
// If Verzweigung für ComboBox auslesen.
double sumpra;
sumpra = myDBQuery.berechneSummeBeitragseinzahlungenAlle((String)stringArray[0], (String)stringArray[1]);
System.out.println(sumpra);
myParameter.setInput(0, "Summe Prämien");
myParameter.setRendite(sumpra);
}
if(cbJahrKS.getSelectedItem().toString().equals("1999")){
double sumprajahr;
sumprajahr = myDBQuery.berechneSummeBeitragseinzahlungenJahr(stringArray[0],stringArray[1], 1999 );
System.out.println(sumprajahr);
double sumschajahr;
sumschajahr = myDBQuery.berechneSummeSchadenJahr(stringArray[0],stringArray[1], 1999 );
System.out.println(sumschajahr);
....