package graphics;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.awt.Desktop;
import javax.swing.UIManager;
import operators.SaveListener;
@SuppressWarnings("serial")
public class Gui extends JFrame
{
public static int xPos;
public static int yPos;
int state;
public static String str = null;
Field field;
JPanel panel;
SaveListener save = new SaveListener();
// Menueleiste
JMenuBar menu=new JMenuBar();
// Spielmenue
JMenu jMenuGame=new JMenu("Spiel");
JMenuItem mNew=new JMenuItem("Neu");
JMenuItem mSave=new JMenuItem("Spielstand Speichern");
JMenuItem mLoad=new JMenuItem("Spiel laden");
JMenuItem mSolve = new JMenuItem("Lösung anzeigen");
JMenuItem mControl = new JMenuItem("Lösung kontrollieren");
JMenuItem mExit=new JMenuItem("Beenden");
// Ansichtmenue
JMenu jMenuView=new JMenu("Ansicht");
JMenuItem mIn=new JMenuItem("Zoom in");
JMenuItem mOut=new JMenuItem("Zoom out");
// Hilfe-Menue
JMenu jMenuHelp=new JMenu("Hilfe");
JMenuItem jMenuHelpText=new JMenuItem("Hilfetext");
JMenuItem jMenuHelpAbout=new JMenuItem("Impressum");
public Gui()
{
try
{
// Interface-Stil
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch (Exception e)
{
e.printStackTrace();
}
// GUI-Layout
Container c=getContentPane();
panel = new JPanel(new GridLayout());
panel.add(new Field(), BorderLayout.CENTER);
c.add(panel, BorderLayout.CENTER);
setTitle("Monogramme");
setSize(550,600);
// "Spiel"
jMenuGame.setMnemonic('S');//
jMenuGame.add(mNew);
jMenuGame.addSeparator();
jMenuGame.add(mSave);
jMenuGame.add(mLoad);
jMenuGame.add(mSolve);
jMenuGame.add(mControl);
jMenuGame.addSeparator();
jMenuGame.add(mExit);
mNew.setFont(new Font("PLAIN", Font.BOLD, 14));
// "Ansicht"
jMenuView.setMnemonic('A'); //
jMenuView.add(mIn);
jMenuView.add(mOut);
// Funktionen mit bestimmten Tastenkombinationen erreichen
mIn.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, InputEvent.CTRL_MASK));
mOut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, InputEvent.CTRL_MASK));
// "Hilfe"
jMenuHelp.setMnemonic('H');//
jMenuHelp.add(jMenuHelpAbout);
// Obere Reiter "Datei", "Bearbeiten", "Einstellungen", "Hilfe"
menu.add(jMenuGame);
menu.add(jMenuView);
menu.add(jMenuHelp);
setJMenuBar(menu);
jMenuGame.setFont(new Font("PLAIN",Font.PLAIN,14));
jMenuView.setFont(new Font("PLAIN",Font.PLAIN,14));
jMenuHelp.setFont(new Font("PLAIN",Font.PLAIN,14));
jMenuGame.setBackground(Color.lightGray);
jMenuView.setBackground(Color.lightGray);
jMenuHelp.setBackground(Color.lightGray);
menu.setBackground(Color.lightGray);
// "Help"-Anzeige
jMenuHelpAbout.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(Gui.this, "TEXT", "Impressum",JOptionPane.INFORMATION_MESSAGE);
}
});
// SaveListener
mSave.addActionListener(new SaveListener());
// MouseListener
panel.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
// Frage Mausposition ab
xPos = e.getX();
yPos = e.getY();
for(int i = 0; i < field.x; i++)
{
for(int j = 0; j < field.y; j++)
{
// Position der Maus wird bei Mausklick mit einer möglichen Zelle verglichen
// Die passende Zelle wird ausgewählt und der Inhalt auf 1 gesetzt, damit beim neu Zeichnen
// das Feld ausgefüllt wird.
if(xPos<(i+1)*field.wert && xPos>i*field.wert && yPos<(j+1)*field.wert && yPos>j*field.wert)
{
field.array[i][j] = 1;
field.repaint();
}
}
}
}
});
}
// Methoden um Mausposition zu übergeben
public int getxPos()
{
return xPos;
}
public int gety()
{
return yPos;
}
}