import java.awt.*; //Abstract Windowing Toolkit
import java.awt.event.*; //Ereignisse wie Klick auf Button
import javax.swing.*; //Swing Komponente fuer GUI
import javax.imageio.*;
import java.util.*;
import javax.swing.JTextArea;
import java.io.*; //Für BufferedReader
public class GUI extends JLabel{
//Deklarieren
Steuerung dieSteuerung;
JFrame frameGUI;
private JMenuBar menuBar;
private JMenu datei;
private JMenu help;
private JLabel lblBlank;
private JMenuItem main;
private JMenuItem aboutUNO;
private JMenuItem readme;
private JButton karteziehen;
private JLabel spielerName[] = new JLabel[4];
private Image grafikFelder[] = new Image[40];
private int n = 0;
//erstellen der Oberflaeche
public GUI(Steuerung dieSteuerung){
//übergeben der Klasse Steuerung an die Oberfläche
this.dieSteuerung=dieSteuerung;
//bestimmen der Bilder für die Werte!
for(n=0; n<40; n++){
if(n>=10 && n<=19){
grafikFelder[n]=new ImageIcon("karten/blau/"+ n +".jpg").getImage();
}
else if(n>=20 && n<=29){
grafikFelder[n]=new ImageIcon("karten/gelb/"+(-10)).getImage();
}
else if(n>=30 && n<=39){
grafikFelder[n]=new ImageIcon("karten/gruen/"+(n-20)).getImage();
}else if(n>=30 && n<=39){
grafikFelder[n]=new ImageIcon("karten/rot/"+(n-30)).getImage();
}
}
//Abfrage der Spielernamen via showInputDialog und Uebergabe an Konstruktor
String player0 = JOptionPane.showInputDialog(new JFrame(), "Bitte gebe den Namen des 1. Spielers (User) ein:", "Willkommen!", JOptionPane.QUESTION_MESSAGE);
String player1 = JOptionPane.showInputDialog(new JFrame(), "Bitte gebe den Namen des 2. Spielers (Com) ein:", "Willkommen!", JOptionPane.QUESTION_MESSAGE);
String player2 = JOptionPane.showInputDialog(new JFrame(), "Bitte gebe den Namen des 3. Spielers (Com) ein:", "Willkommen!", JOptionPane.QUESTION_MESSAGE);
String player3 = JOptionPane.showInputDialog(new JFrame(), "Bitte gebe den Namen des 4. Spielers (Com) ein:", "Willkommen!", JOptionPane.QUESTION_MESSAGE);
//Spieler erstellen
dieSteuerung.makePlayer(player0, player1, player2, player3);
//Initialisierung
spielerName[0] = new JLabel(dieSteuerung.getName(0));
spielerName[1] = new JLabel(dieSteuerung.getName(1));
spielerName[2] = new JLabel(dieSteuerung.getName(2));
spielerName[3] = new JLabel(dieSteuerung.getName(3));
datei = new JMenu("Hauptmenue");
help = new JMenu("Hilfe");
main = new JMenuItem("Neues Spiel");
aboutUNO = new JMenuItem("About UNO");
readme = new JMenuItem("Readme");
frameGUI = new JFrame("UNO");
lblBlank = new JLabel(); //leeres Label
menuBar = new JMenuBar();
//Hinzufuegen
menuBar.add(datei); //Hauptmenue
menuBar.add(help); //Menue Hilfe
menuBar.add(lblBlank);
datei.add(main); //Unterpunkt Neues Spiel unter Hauptmenue
help.add(aboutUNO); //Unterpunkt About UNO unter Help
help.add(readme); //Unterpunkt Readme unter Help
frameGUI.setSize(1024,768); // zeichnet auto x und y
frameGUI.getContentPane().add(this);
frameGUI.setJMenuBar(menuBar); //Menueleiste
frameGUI.setResizable(false); //Groesse nicht aenderbar
frameGUI.setVisible(true); //Sichtbarkeit
frameGUI.setLayout(null); //Nulllayout
frameGUI.setLocationRelativeTo(null); //Fenster zentrieren
//Anzeigen der Namen im GUI nachdem man erst ein neues Spiel startet
spielerName[0].setBounds(835,370,650,500);
spielerName[0].setLayout(null);
spielerName[0].setFont(spielerName[0].getFont().deriveFont(32f));
spielerName[0].setForeground(Color.black);
add(spielerName[0]);
spielerName[1].setBounds(35,0,500,367);
spielerName[1].setFont(spielerName[1].getFont().deriveFont(32f));
spielerName[1].setForeground(Color.black);
add(spielerName[1]);
spielerName[2].setBounds(535,-40,500,150);
spielerName[2].setFont(spielerName[2].getFont().deriveFont(32f));
spielerName[2].setForeground(Color.black);
add(spielerName[2]);
spielerName[3].setBounds(833,4,500,367);
spielerName[3].setFont(spielerName[3].getFont().deriveFont(32f));
spielerName[3].setForeground(Color.black);
add(spielerName[3]);
repaint();
//neues Spiel starten
main.addMouseListener(new java.awt.event.MouseAdapter(){
public void mousePressed(MouseEvent e){
//Button wird hinzugefügt, angepasst und bereit gestellt
karteziehen = new JButton("Karte ziehen"); //Button erstellt
frameGUI.add(karteziehen); //Button hinzugefügt
karteziehen.setBounds(850,20,150,50); //Button Karteziehen position
karteziehen.addMouseListener(new java.awt.event.MouseAdapter(){ //Buttonlistener wird aktiviert
public void mousePressed(MouseEvent e){
zieheKarte();
}});
}
});
//AboutUNO-Popup aufrufen
aboutUNO.addMouseListener(new java.awt.event.MouseAdapter(){
public void mousePressed(MouseEvent e){
JOptionPane.showMessageDialog(null,"Game created by Jonas.S and Cem.G \nVersion 0.1\nBased on Java 7", "About UNO",JOptionPane.INFORMATION_MESSAGE,new ImageIcon("unologo.jpg"));
}
});
//Readme aufrufen
readme.addMouseListener(new java.awt.event.MouseAdapter(){
public void mousePressed(MouseEvent e){
try{
Desktop desktop = Desktop.getDesktop();
desktop.edit(new File("README.TXT"));
}catch (Exception exp){
}
}
});
}
/**CODE NÖTIG,FUNKT NOCH NICHT!**/
//Methode für KarteziehenButton
public void zieheKarte(){
//dieSteuerung.macheKarte();
}
//Anzeigen des Hintergrundbildes
public void paintComponent(Graphics g) {
g.drawImage(getToolkit().getImage("hintergrund.jpg"),0,0,1024,768,null);
g.drawImage(grafikFelder[1],0,0,100,100,null);
}
/**public void paintCards(Graphics g) {
g.drawImage(grafikFelder[1],0,0,100,100,this);
}**/
}