import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
/**
*
* Beschreibung
*
* @version 1.0 vom 18.06.2012
* @author
*/
public class GUI_Ticketautomat extends JFrame {
// Anfang Attribute
private JLabel jL_Titel = new JLabel();
private JTextArea jTA_Display = new JTextArea("");
private JScrollPane jTA_DisplayScrollPane = new JScrollPane(jTA_Display);
private JComboBox jCB_Ticketauswahl = new JComboBox();
private JComboBox jCB_Preisstufenwahl = new JComboBox();
private JTextArea jTA_Auswahl = new JTextArea("");
private JScrollPane jTA_AuswahlScrollPane = new JScrollPane(jTA_Auswahl);
private JButton jB_TicketKaufen = new JButton();
private JButton jB_10Ct = new JButton();
private JButton jB_20Ct = new JButton();
private JButton jB_50Ct = new JButton();
private JButton jB_100Ct = new JButton();
private JButton jB_200Ct = new JButton();
private JButton jB_Abbrechen = new JButton();
private Ticketautomat ticketkauf = new Ticketautomat();
private Ticket fahrschein = new Ticket();
// Ende Attribute
public GUI_Ticketautomat(String title) {
// Frame-Initialisierung
super(title);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 750;
int frameHeight = 550;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setResizable(false);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
jL_Titel.setBounds(192, 24, 391, 65);
jL_Titel.setText("KVB - Ticketautomat");
jL_Titel.setFont(new Font("Dialog", Font.BOLD, 40));
cp.add(jL_Titel);
jTA_DisplayScrollPane.setBounds(32, 112, 673, 89);
cp.add(jTA_DisplayScrollPane);
jCB_Ticketauswahl.setBounds(32, 216, 225, 33);
jCB_Ticketauswahl.setToolTipText("Ticket wählen");
jCB_Ticketauswahl.setFont(new Font("Dialog", Font.BOLD, 16));
jCB_Ticketauswahl.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent evt) {
jCB_Ticketauswahl_ItemStateChanged(evt);
}
});
jCB_Ticketauswahl.setModel(new DefaultComboBoxModel(new String[] {"Einzelticket Erwachsene", "Einzelticket Kinder", "4-er Ticket Erwachsene", "4-er Ticket Kinder", "Tagesticket 1 Person", "Tagesticket 4 Personen"}));
jCB_Ticketauswahl.setEditable(true);
cp.add(jCB_Ticketauswahl);
jCB_Preisstufenwahl.setBounds(32, 272, 225, 33);
jCB_Preisstufenwahl.setToolTipText("Preisstufe wählen");
jCB_Preisstufenwahl.setModel(new DefaultComboBoxModel(new String[] {"K", "1a", "1b", "2a", "2b", "3", "4", "5"}));
jCB_Preisstufenwahl.setFont(new Font("Dialog", Font.BOLD, 16));
jCB_Preisstufenwahl.setEditable(true);
cp.add(jCB_Preisstufenwahl);
jTA_AuswahlScrollPane.setBounds(32, 328, 353, 169);
cp.add(jTA_AuswahlScrollPane);
jB_TicketKaufen.setBounds(408, 216, 209, 97);
jB_TicketKaufen.setText("TICKET KAUFEN");
jB_TicketKaufen.setMargin(new Insets(2, 2, 2, 2));
jB_TicketKaufen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jB_TicketKaufen_ActionPerformed(evt);
}
});
jB_TicketKaufen.setFont(new Font("Dialog", Font.BOLD, 22));
cp.add(jB_TicketKaufen);
jB_10Ct.setBounds(408, 336, 73, 33);
jB_10Ct.setText("10 Ct");
jB_10Ct.setMargin(new Insets(2, 2, 2, 2));
jB_10Ct.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jB_10Ct_ActionPerformed(evt);
}
});
cp.add(jB_10Ct);
jB_20Ct.setBounds(408, 384, 73, 33);
jB_20Ct.setText("20 Ct");
jB_20Ct.setMargin(new Insets(2, 2, 2, 2));
jB_20Ct.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jB_20Ct_ActionPerformed(evt);
}
});
cp.add(jB_20Ct);
jB_50Ct.setBounds(408, 432, 73, 33);
jB_50Ct.setText("50 Ct");
jB_50Ct.setMargin(new Insets(2, 2, 2, 2));
jB_50Ct.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jB_50Ct_ActionPerformed(evt);
}
});
cp.add(jB_50Ct);
jB_100Ct.setBounds(544, 336, 73, 33);
jB_100Ct.setText("1 €");
jB_100Ct.setMargin(new Insets(2, 2, 2, 2));
jB_100Ct.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jB_100Ct_ActionPerformed(evt);
}
});
cp.add(jB_100Ct);
jB_200Ct.setBounds(544, 384, 73, 33);
jB_200Ct.setText("2 €");
jB_200Ct.setMargin(new Insets(2, 2, 2, 2));
jB_200Ct.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jB_200Ct_ActionPerformed(evt);
}
});
cp.add(jB_200Ct);
jB_Abbrechen.setBounds(512, 448, 145, 49);
jB_Abbrechen.setText("ABBRECHEN");
jB_Abbrechen.setMargin(new Insets(2, 2, 2, 2));
jB_Abbrechen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jB_Abbrechen_ActionPerformed(evt);
}
});
jB_Abbrechen.setFont(new Font("Dialog", Font.BOLD, 18));
cp.add(jB_Abbrechen);
// Ende Komponenten
setVisible(true);
} // end of public GUI_Ticketautomat
// Anfang Methoden
public void jB_TicketKaufen_ActionPerformed(ActionEvent evt) {
if (jCB_Ticketauswahl.getSelectedIndex() != 0 &&
jCB_Preisstufenwahl.getSelectedIndex() != 0 ) {
if (jCB_Ticketauswahl.getSelectedIndex() > 4 &&
jCB_Preisstufenwahl.getSelectedIndex() == 1) {
jTA_Display.setText("Bei Auswahl eines Zeittickets ist die Wahl der Preisstufe Kurzstrecke nicht möglich.");
jTA_Display.append("\n" + "Bitte wählen Sie die passende Preisstufe oder ein anderes Ticket.");
} else {
jTA_Display.setText("Sie haben " + jCB_Ticketauswahl.getSelectedItem().toString() + "\n");
jTA_Display.append("Preisstufe: " + jCB_Preisstufenwahl.getSelectedItem().toString() + "\n");
jTA_Display.append("Bitte zahlen Sie " + ticketkauf.getPreis(jCB_Ticketauswahl.getSelectedIndex() - 1, jCB_Preisstufenwahl.getSelectedIndex() -1) + " Cent.");
} // end of if-else
}} // end of jB_TicketKaufen_ActionPerformed
public void geldEinwerfen() {
Ticketautomat.gesamtsumme = gesamtsumme + x;
}
public void jB_10Ct_ActionPerformed(ActionEvent evt) {
} // end of jB_10Ct_ActionPerformed
public void jB_20Ct_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jB_20Ct_ActionPerformed
public void jB_50Ct_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jB_50Ct_ActionPerformed
public void jB_100Ct_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jB_100Ct_ActionPerformed
public void jB_200Ct_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jB_200Ct_ActionPerformed
public void jB_Abbrechen_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jB_Abbrechen_ActionPerformed
public void pruefeEingezahltenBetrag() {
if (fahrschein.getPreisInCent() <= ticketkauf.getBisherGezahlt()) {
jTA_Display.setText("Bitte entnehmen Sie Ihr Ticket und das Wechselgeld dem Ausgabefach.");
jTA_Display.setText("**********************************");
jTA_Display.append("\n" + "*** " + fahrschein.getTicketBezeichnung() );
jTA_Display.append("\n" + "*** Preisstufe: " + fahrschein.getPreisstufe() );
jTA_Display.append("\n" + "*** " + fahrschein.getPreisInCent() + " Cent");
jTA_Display.append("\n" + "**********************************");
jTA_Display.append("\n");
int wechselgeld = ticketkauf.getBisherGezahlt() - fahrschein.getPreisInCent();
if (wechselgeld > 0) {
jTA_Display.append("\n" + "Ihr Wechselgeld: " + wechselgeld + " Cent");
int z = ticketkauf.getGesamtsumme() - wechselgeld;
ticketkauf.setGesamtsumme( z );
}
ticketkauf.setBisherGezahlt( 0 );
} else {
int fehlbetrag = fahrschein.getPreisInCent() - ticketkauf.getBisherGezahlt();
jTA_Display.setText("Sie haben " + ticketkauf.getBisherGezahlt() + "Cent eingeworfen. Bitte zahlen Sie noch " + fehlbetrag + " Cent!");
} // end of if-else
}
public static void main(String[] args) {
new GUI_Ticketautomat("GUI_Ticketautomat");
} // end of main
public void jCB_Ticketauswahl_ItemStateChanged(ItemEvent evt) {
// TODO hier Quelltext einfügen
} // end of jCB_Ticketauswahl_ItemStateChanged
// Ende Methoden
}