import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.lang.String;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Container;
import java.io.*;
public class PuzzlePro extends JFrame implements ActionListener {
private int index;
private JButton[] button;
private JButton[] buttonclone;
private JLabel label;
private JLabel label2;
public PuzzlePro() {
super("Puzzle Pro");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize( 1040, 820);
setResizable ( false );
setLocationRelativeTo(null);
JPanel panel = new JPanel(new GridLayout(4,4));
index = -1;
button = new JButton[17];
for (int i=1; i<button.length; i++) {
button[i] = new JButton();
button[i].addActionListener(this);
button[i].setIcon(new ImageIcon(getClass().getResource("berg"+i+".jpg")));
}
buttonclone = new JButton[17];
for (int i=1; i<button.length; i++) {
buttonclone[i] = new JButton();
buttonclone[i].addActionListener(this);
buttonclone[i].setIcon(new ImageIcon(getClass().getResource("berg"+i+".jpg")));
}
for(int i = 1; i < button.length; i++){
JButton tmp = button[i];
int zelle = (int) (Math.random()*(button.length - i) + i);
button[i] = button[zelle];
button[zelle] = tmp;
}
for(int i = 1; i < button.length; i++){
panel.add(button[i]);
button[i].setVisible(false);
}
JButton[] arrayCopy = new JButton[10];
for (int i = 1; i < arrayCopy.length; i++) {
arrayCopy[i] = button[i];
}
this.getContentPane().add(panel, BorderLayout.CENTER);
this.getContentPane().add(label = new JLabel("Erstes Bild wählen"), BorderLayout.SOUTH);
JMenu menu, submenu;
JMenuItem menuItem;
JMenuBar menuBar = new JMenuBar();
menu = new JMenu( "GAME"); // Erzeugen eines Hauptmenüpunktes
menuBar.add( menu); // Hinzufügen des Hauptmenüpunktes
menuItem = new JMenuItem( "New Game"); // Erzeugen eines Untermenüs von Puzzle Pro
menu.add(menuItem);
menuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e) {
for (int i = 1; i < button.length; i++) {
button[i].setVisible(true);
}
}
});
menuItem = new JMenuItem( "Exit"); // Erzeugen eines Untermenüs von Puzzle Pro
menu.add(menuItem); // Untermenü wird dem Hauptmenü hinzugefügt
menuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e) {
System.exit(0); // Durch wählen des Menupunketes "Exit" wird das Fenster beendet
}
});
menu = new JMenu( "Optionen"); // Erzeugen eines Hauptmenüpunktes
menuBar.add( menu); // Hinzufügen des Hauptmenüpunktes
menuItem = new JMenuItem( "Hilfe");
menu.add(menuItem);
menuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e) {
try
{
Desktop.getDesktop().open(new File("Hilfe.txt"));
}
catch(Exception eref)
{
}
}
});
menuItem = new JMenuItem( "Handbuch"); // Erzeugen eines Untermenüs von Puzzle Pro
menu.add(menuItem);
menuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e) {
try
{
Desktop.getDesktop().open(new File("Handbuch.pdf"));
}
catch(Exception eref)
{
}
}
});
menuItem = new JMenuItem( "About"); // Erzeugen eines Untermenüs von Puzzle Pro
menu.add(menuItem);
menuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e) {
JOptionPane.showMessageDialog(null, " Puzzle Pro\n © by Steffen Kunz, Martin Reichert, Tobias Heldmayer\n OOP2 SoSe 2011", "About", JOptionPane.CLOSED_OPTION);
}
});
setJMenuBar( menuBar); // Erzeugen der kompletten Menüleiste
}
public void actionPerformed(ActionEvent e) {
int curIndex = -1;
for (int i=0; i<button.length; i++) {
if (e.getSource().equals(button[i])) {
curIndex = i;
break;
}
}
if(index==-1) {
index = curIndex;
label.setText(" Zweites Bild wählen");
}
else {
swapIcons(index, curIndex);
index = -1;
label.setText(" Erstes Bild wählen");
}
}
private void swapIcons(int index1, int index2) {
Icon icon = button[index1].getIcon();
button[index1].setIcon(button[index2].getIcon());
button[index2].setIcon(icon);
}
public static void main(String[] args) {
JFrame frame = new PuzzlePro();
frame.setVisible(true);
}
}