hallo,
in unserem neuen uni-projekt ham wir uns entschieden ein puzzle-spiel zu machen.
wir hängen leider nun an einer stelle und zwar haben wir ein gridlayout erstellt (3x3)
und 9 buttons erzeugt, dann ein beliebiges bild in 9 teile aufgeteilt und den einzelnen buttons
zugewiesen.
jetzt meine frage: a) wie können wir machen, dass die 9 buttons sich nach starten des spieles
die vertauschen?
und b) wie kann man es einrichten dass man die bilder praktisch anklickt und auf
ein anderes klickt und beide die plätze tauschen?
hier mal unser bisheriges coding:
in unserem neuen uni-projekt ham wir uns entschieden ein puzzle-spiel zu machen.
wir hängen leider nun an einer stelle und zwar haben wir ein gridlayout erstellt (3x3)
und 9 buttons erzeugt, dann ein beliebiges bild in 9 teile aufgeteilt und den einzelnen buttons
zugewiesen.
jetzt meine frage: a) wie können wir machen, dass die 9 buttons sich nach starten des spieles
die vertauschen?
und b) wie kann man es einrichten dass man die bilder praktisch anklickt und auf
ein anderes klickt und beide die plätze tauschen?
hier mal unser bisheriges coding:
Java:
import java.lang.String;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.applet.Applet;
import javax.swing.JFrame;
import java.awt.Container;
public class MenuExample extends JFrame {
// Anfang Attribute
// Ende Attribute
public MenuExample() {
super("GAME"); // Fenstertitel an JFrame(String) übergeben
setDefaultCloseOperation( EXIT_ON_CLOSE); // Fenster schließen = Ende
Container contentPane = getContentPane();
contentPane.setLayout( new GridLayout(3,3)); // Gridlayout 3x3 erzeugen
setSize (300, 400);
setResizable ( false ); // Fenster ist nicht veränderbar
ImageIcon berg1 = new ImageIcon ("C:\\berg11.jpg");
final JButton button1 = new JButton ( berg1); // final deklariert wegen inner class aufruf bei action listener EXIT
button1.setPreferredSize( new Dimension( 262, 196));
add (button1);
button1.setVisible(false);
ImageIcon berg2 = new ImageIcon ("C:\\berg22.jpg");
final JButton button2 = new JButton ( berg2);
button2.setPreferredSize( new Dimension( 262, 196));
add (button2);
button2.setVisible(false);
ImageIcon berg3 = new ImageIcon ("C:\\berg33.jpg");
final JButton button3 = new JButton ( berg3);
button3.setPreferredSize( new Dimension( 262, 196));
add (button3);
button3.setVisible(false);
ImageIcon berg4 = new ImageIcon ("C:\\berg44.jpg");
final JButton button4 = new JButton ( berg4);
button4.setPreferredSize( new Dimension( 262, 196));
add (button4);
button4.setVisible(false);
ImageIcon berg5 = new ImageIcon ("C:\\berg55.jpg");
final JButton button5 = new JButton ( berg5);
button5.setPreferredSize( new Dimension( 262, 196));
add (button5);
button5.setVisible(false);
ImageIcon berg6 = new ImageIcon ("C:\\berg66.jpg");
final JButton button6 = new JButton ( berg6);
button6.setPreferredSize( new Dimension( 262, 196));
add (button6);
button6.setVisible(false);
ImageIcon berg7 = new ImageIcon ("C:\\berg77.jpg");
final JButton button7 = new JButton ( berg7);
button7.setPreferredSize( new Dimension( 262, 196));
add (button7);
button7.setVisible(false);
ImageIcon berg8 = new ImageIcon ("C:\\berg88.jpg");
final JButton button8 = new JButton ( berg8);
button8.setPreferredSize( new Dimension( 262, 196));
add (button8);
button8.setVisible(false);
ImageIcon berg9 = new ImageIcon ("C:\\berg99.jpg");
final JButton button9 = new JButton ( berg9);
button9.setPreferredSize( new Dimension( 262, 196));
add (button9);
button9.setVisible(false);
//JButton button9 = new JButton("9");
//contentPane.add(new JButton("Button 9"));
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
submenu = new JMenu( "New Game"); // Erzeugen eines Sub- bzw Untermenüs von Puzzle Pro
menu.add( submenu); // Hinzufügen des Submenüpunktes
menuItem = new JMenuItem( "Bild 1"); // Erzeugen eines Untermenüs von New Game
submenu.add( menuItem); // Untermenü wird dem Submenü hinzugefügt
menuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e) {
button1.setVisible(true);
button2.setVisible(true);
button3.setVisible(true);
button4.setVisible(true);
button5.setVisible(true);
button6.setVisible(true);
button7.setVisible(true);
button8.setVisible(true);
button9.setVisible(true);
}
});
menuItem = new JMenuItem( "Bild 2"); // Erzeugen eines Untermenüs von New Game
submenu.add( menuItem); // Untermenü wird dem Submenü hinzugefügt
menuItem = new JMenuItem( "Bild 3"); // Erzeugen eines Untermenüs von New Game
submenu.add( menuItem); // Untermenü wird dem Submenü hinzugefügt
menuItem = new JMenuItem( "Reset"); // Erzeugen eines Untermenüs von Puzzle Pro
menu.add(menuItem);
menuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e) {
button1.setVisible(false);
button2.setVisible(false);
button3.setVisible(false);
button4.setVisible(false);
button5.setVisible(false);
button6.setVisible(false);
button7.setVisible(false);
button8.setVisible(false);
button9.setVisible(false);
}
}); // Untermenü wird dem Hauptmenü hinzugefügt
menuItem = new JMenuItem( "Bestenliste"); // Erzeugen eines Untermenüs von Puzzle Pro
menu.add(menuItem); // Untermenü wird dem Hauptmenü hinzugefügt
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.add( new JSeparator());
menu = new JMenu( "Optionen"); // Erzeugen eines Hauptmenüpunktes
menuBar.add( menu); // Hinzufügen des Hauptmenüpunktes
submenu = new JMenu( "Schwierigkeit"); // Erzeugen eines Sub- bzw Untermenüs von Optionen
menu.add( submenu); // Hinzufügen des Submenüpunktes
menuItem = new JMenuItem( "Leicht"); // Erzeugen eines Untermenüs von Schwierigkeit
submenu.add( menuItem); // Untermenü wird dem Submenü hinzugefügt
menuItem = new JMenuItem( "Mittel"); // Erzeugen eines Untermenüs von Schwierigkeit
submenu.add( menuItem); // Untermenü wird dem Submenü hinzugefügt
menuItem = new JMenuItem( "Schwer"); // Erzeugen eines Untermenüs von Schwierigkeit
submenu.add( menuItem); // Untermenü wird dem Submenü hinzugefügt
menuItem = new JMenuItem( "Pause/Zeit stoppen"); // Erzeugen eines Untermenüs von Optionen
menu.add(menuItem); // Untermenü wird dem Hauptmenü hinzugefügt
menu = new JMenu("Hier soll die Zeit herunterlaufen"); // Erzeugen eines Hauptmenüpunktes
menuBar.add(menu); // Hinzufügen eines Hauptmenüpunktes
// JLabel label = new JLabel("Timer");
// label.add(menu);
setJMenuBar( menuBar); // Erzeugen der kompletten Menüleiste
setSize( 800, 600); // Größe der Menüleiste festlegen
/* menuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e) {
System.out.println( "Wird geöffnet!");
}
});
*/
// Anfang Komponenten
// Ende Komponenten
}
// Anfang Methoden
public static void main( String[] args) {
new MenuExample().setVisible( true); // main() endet, Programm läuft weiter
}
// Ende Methoden
}