import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Shape;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.util.ArrayList;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class StuhlAuswahl extends JFrame implements ActionListener {
private int xPosition;
private int yPosition;
private int orientierung;
private String farbe;
private boolean istSichtbar;
private int breite;
private int tiefe;
/**
*
*/
private static final long serialVersionUID = 1L;
String[] SesselAussuchen = {"Rot","Blau","Schwarz"};
JComboBox<?> comboSesselAussuchen = new JComboBox<Object>(SesselAussuchen);
JLabel lblText = new JLabel();
public static void auswahlbox(){
StuhlAuswahl fr = new StuhlAuswahl(null);
centerFrame(fr);
fr.setVisible(true);
}
private static void centerFrame(StuhlAuswahl fr) {
// TODO Auto-generated method stub
}
public StuhlAuswahl(String farbe){
setLayout(new FlowLayout());
setSize(400,300);
setTitle("Wähle die Farbe deines Stuhls");
add(comboSesselAussuchen);
DerHandler handler = new DerHandler();
comboSesselAussuchen.addActionListener(handler);
xPosition = 160;
yPosition = 80;
orientierung = 0;
istSichtbar = false;
breite = 40;
tiefe = 40;
this.farbe = farbe;
}
public class DerHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()==comboSesselAussuchen){
JComboBox cb = (JComboBox)e.getSource();
String msg = (String)cb.getSelectedItem();
switch(msg){
case "Rot" : {
int answer = JOptionPane.showConfirmDialog(null, "Möchtest du wirklich den Sessel hinzufügen?",
"Confirm Dialog", JOptionPane.YES_NO_OPTION);
switch (answer) {
case JOptionPane.YES_OPTION:
StuhlAuswahl[] stuhl = new StuhlAuswahl[1];
int i;
for(i=0;i<stuhl.length;i++){
stuhl[i]=new StuhlAuswahl("rot");
stuhl[i].zeige();
}
break;
case JOptionPane.NO_OPTION:
System.out.println("You clicked NO"); break;
} // end of Case"Rot"
break;
}
case "Blau" : {
int answer = JOptionPane.showConfirmDialog(null, "Möchtest du wirklich den Sessel hinzufügen?",
"Confirm Dialog", JOptionPane.YES_NO_OPTION);
switch (answer) {
case JOptionPane.YES_OPTION:
StuhlAuswahl stuhl = new StuhlAuswahl("blau");
stuhl.zeige();
break;
case JOptionPane.NO_OPTION:
System.out.println("You clicked NO"); break;
} // end of Case"Blau"
break;
}
case "Schwarz" : {
int answer = JOptionPane.showConfirmDialog(null, "Möchtest du wirklich den Sessel hinzufügen?",
"Confirm Dialog", JOptionPane.YES_NO_OPTION);
switch (answer) {
case JOptionPane.YES_OPTION:
StuhlAuswahl stuhl = new StuhlAuswahl("schwarz");
stuhl.zeige();
break;
case JOptionPane.NO_OPTION:
System.out.println("You clicked NO"); break;
} // end of Case"Schwarz"
break;
}
}
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
public Shape gibAktuelleFigur()
{
GeneralPath stuhl = new GeneralPath();
stuhl.moveTo(xPosition , yPosition);
stuhl.lineTo(xPosition+breite, yPosition);
stuhl.lineTo(xPosition+breite+3, yPosition+tiefe);
stuhl.lineTo(xPosition-3 , yPosition+tiefe);
stuhl.lineTo(xPosition , yPosition );
//Das ist die Umrandung. Das Stuhl bekommt noch eine Lehne
stuhl.moveTo(xPosition , yPosition + 5 );
stuhl.lineTo(xPosition + breite , yPosition + 5);
AffineTransform t1 = new AffineTransform();
t1.rotate(Math.toRadians(orientierung),gibMitteX(),gibMitteY());
return t1.createTransformedShape(stuhl);
}
/**
* Hole die X-Koordinate des Mittelpunktes
* [ Hilfsfunktion f�r das Drehen. ]
*/
private int gibMitteX()
{
return xPosition+breite/2;
}
/**
* Hole die Y-Koordinate des Mittelpunktes
* [ Hilfsfunktion f�r das Drehen. ]
*/
private int gibMitteY()
{
return yPosition+tiefe/2;
}
/**
* Mache dieses Objekt sichtbar. Wenn es bereits sichtbar ist, tue
* nichts.
*/
public void zeige()
{
istSichtbar = true;
zeichne();
}
/**
* Mache dieses Objekt unsichtbar. Wenn es bereits unsichtbar ist, tue
* nichts.
*/
public void verberge()
{
loesche();
istSichtbar = false;
}
/**
* Drehe auf den angegebenen Winkel
*/
public void dreheAuf(int neuerWinkel)
{
loesche();
orientierung = neuerWinkel;
zeichne();
}
/**
* Bewege dieses Objekt horizontal um 'entfernung' Bildschirmpunkte.
*/
public void bewegeHorizontal(int entfernung, int objektNr)
{
StuhlAuswahl[] stuhl[];
stuhl[objektNr] = objektNr;
loesche();
xPosition += entfernung;
zeichne();
}
/**
* Bewege dieses objekt vertikal um 'entfernung' Bildschirmpunkte.
*/
public void bewegeVertikal(int entfernung)
{
loesche();
yPosition += entfernung;
zeichne();
}
/**
* �ndere die Farbe dieses Objektes in 'neueFarbe'.
* G�ltige Angaben sind "rot", "gelb", "blau", "gruen",
* "lila" und "schwarz".
*/
public void aendereFarbe(String neueFarbe)
{
farbe = neueFarbe;
zeichne();
}
/*
* Zeichne dieses Objekt mit seinen aktuellen Werten auf den Bildschirm.
*/
public void zeichne()
{
if (istSichtbar)
{
Shape figur = gibAktuelleFigur();
Leinwand leinwand = Leinwand.gibLeinwand();
leinwand.zeichne (
this,
farbe,
figur);
leinwand.warte(10);
}
}
/*
* L�sche dieses Objekt vom Bildschirm.
*/
private void loesche()
{
if (istSichtbar)
{
Leinwand leinwand = Leinwand.gibLeinwand();
leinwand.entferne(this);
}
}
}