hey Im trying to make a game of pairs (the memory game) i have set up a grid which displays a graphic for the card back. im trying to link the edit menu to choose the graphic to be displayed. i've set up a string variable called deck which will contain the path to the required image. and actionlisteners DA and DB corresponding to which style is choosen in the menu. I had to declare the deck to some initial image so it can load.
How do i impliment the change once the menuitem has been selected?
below is my code so far.
Any suggestion welcome
How do i impliment the change once the menuitem has been selected?
below is my code so far.
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.net.*;
class Filenew extends JFrame implements ActionListener
{
JMenuItem Exit, DA, DB, About, Instructions;
Filenew gameFrame = null;
String deck = "images/aqua.jpg";
JPanel[][] q;
public static void main (String[] args)
{
Filenew frame = new Filenew();
frame.display();
}
public Filenew()
{
this(2, 2);
}
public Filenew(int x, int y)
{
setBackground(Color.red);
JMenuBar menubar = new JMenuBar();
setJMenuBar(menubar);
JMenu filemenu = new JMenu("File");
menubar.add(filemenu);
JMenu New = new JMenu("New");
JMenuItem New43 = new JMenuItem("4x3");
New.add(New43);
JMenuItem New44 = new JMenuItem("4x4");
New.add(New44);
JMenuItem New54 = new JMenuItem("5x4");
New.add(New54);
Exit = new JMenuItem("Exit");
filemenu.add(New);
filemenu.add(Exit);
JMenu editmenu = new JMenu("Edit");
menubar.add(editmenu);
JMenuItem ChangeD = new JMenu("Change Deck");
editmenu.add(ChangeD);
JMenuItem DA = new JMenuItem("Style 1");
ChangeD.add(DA);
JMenuItem DB = new JMenuItem("Style 2");
ChangeD.add(DB);
JMenuItem ChangeB = new JMenu("Change Background");
editmenu.add(ChangeB);
JMenuItem BA = new JMenuItem("Style 1");
ChangeB.add(BA);
JMenuItem BB = new JMenuItem("Style 2");
ChangeB.add(BB);
New43.setActionCommand("43");
New44.setActionCommand("44");
New54.setActionCommand("54");
Exit.setActionCommand("Exit");
DA.setActionCommand("DA");
DB.setActionCommand("DB");
New43.addActionListener(this);
New44.addActionListener(this);
New54.addActionListener(this);
Exit.addActionListener(this);
DA.addActionListener(this);
DB.addActionListener(this);
getContentPane().setLayout(new GridLayout(x,y));
q = new JPanel[x][y];
for (int i=0; i<x; i++)
{
for (int j=0; j<y; j++)
{
q[i][j] = new JPanel();
getContentPane().add(q[i][j]);
URL address = myscene.class.getResource(deck);
ImageIcon image = new ImageIcon(address);
JLabel cardback = new JLabel(image);
q[i][j].add(cardback);
}
}
}
void display()
{
setTitle("The World's Most Amazing Game of Pairs to Ever Have Existed");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
setSize(600,400);
setMinimumSize(new Dimension (600,400));
}
protected void Exit()
{
System.exit(0);
}
public void actionPerformed(ActionEvent event)
{
String source = event.getActionCommand();
if(source.equals ("43"))
{
newGame(3, 4);
}
if(source.equals("44"))
{
newGame(4, 4);
}
if(source.equals("54"))
{
newGame(4, 5);
}
if(source.equals("Exit"))
{
Exit();
}
if(source.equals("DA"))
{
deck = "images/pairs.jpg";
}
if(source.equals("DB"))
{
deck = "images/carddeck.jpeg";
}
}
public void newGame(int x, int y)
{
closeGame();
gameFrame = new Filenew(x, y);
gameFrame.display();
}
public void closeGame()
{
if (gameFrame != null)
{
gameFrame.dispose();
gameFrame = null;
}
}
}
Comment