?? memory.java
字號(hào):
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class memory extends WindowAdapter implements MouseListener{
//20 buttons
int countnum=0;
int clicknum []={21,21};
JButton clickbutton []=new JButton[2];// pair of buttons..
static JFrame f = new JFrame("test your memory");
static JButton buttonarray []=new JButton[20];
//20 images
ImageIcon defaulticon=new ImageIcon ("0.jpg");
static ImageIcon iconarray []={
new ImageIcon ("1.jpg"),
new ImageIcon ("1.jpg"),
new ImageIcon ("2.jpg"),
new ImageIcon ("2.jpg"),
new ImageIcon ("3.jpg"),
new ImageIcon ("3.jpg"),
new ImageIcon ("4.jpg"),
new ImageIcon ("4.jpg"),
new ImageIcon ("5.jpg"),
new ImageIcon ("5.jpg"),
new ImageIcon ("6.jpg"),
new ImageIcon ("6.jpg"),
new ImageIcon ("7.jpg"),
new ImageIcon ("7.jpg"),
new ImageIcon ("8.jpg"),
new ImageIcon ("8.jpg"),
new ImageIcon ("9.jpg"),
new ImageIcon ("9.jpg"),
new ImageIcon ("10.jpg"),
new ImageIcon ("10.jpg")
};
static int array[]=new int[20];
//constructor
public memory(){
f.setSize(250,320);
for(int i=0;i<20;i++)
{
buttonarray [i]=new JButton();
// add listener
buttonarray [i].addMouseListener(this);
}
//add memu bar
JMenuBar mb = new JMenuBar();
f.setJMenuBar(mb);
JMenu m1 = new JMenu("File");
JMenu m2 = new JMenu("Help");
mb.add(m1);
mb.add(m2);
JMenuItem m11 = new JMenuItem("New");
JMenuItem m12 = new JMenuItem("Quit");
m1.add(m11);
m1.addSeparator();
m1.add(m12);
JMenuItem m21 = new JMenuItem("how to play");
JMenuItem m22 = new JMenuItem("about this game");
m2.add(m21);
m2.addSeparator();
m2.add(m22);
f.getContentPane().setLayout(new GridLayout(5,4));
Monitor bm1 = new Monitor();
m11.addActionListener(bm1);
m12.addActionListener(bm1);
Monitor bm2 = new Monitor();
m21.addActionListener(bm2);
Monitor bm3 = new Monitor();
m22.addActionListener(bm3);
// window listener
f.addWindowListener(this);
f.setVisible(true);
}
public void windowClosing(WindowEvent e){
System.exit(0); }
public static void startGame(){
//new game...
for(int i=0;i<20;i++)
{
f.getContentPane().add(buttonarray [i]);
buttonarray [i].setVisible(true);
}
for(int i=0;i<array.length;i++)
{
array[i]=(int)(Math.random()*20);
for (int j=0;j<i;j++)
{
if (array[j]==array[i])
i--;
}
}
f.setVisible(true);
}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
JButton button2=(JButton) e.getSource();
for(int i=0;i<20;i++){
if (button2.equals(buttonarray [i]))//search the button
{
button2.setIcon(iconarray [array [i]]);
System.out.println("show the icon...");
clickbutton [1]=buttonarray [i];
clicknum [1]=array [i];
Thread Stopper = new Stopper();
Stopper.start();
}
}
}
public static void main(String args[]) {memory aa=new memory();}
class Stopper extends Thread{
public void run(){
System.out.println("new thread");
if (clicknum[0]!=21&&(((ImageIcon)clickbutton[0].getIcon()).toString().equals(((ImageIcon)clickbutton[1].getIcon()).toString()))&&(clicknum [1]!=clicknum [0]))
{
try
{
System.out.println("sleep 1");
this.sleep(400);
}
catch(InterruptedException a)
{}
clickbutton [0].setVisible(false);
clickbutton [1].setVisible(false);
clicknum[0]=clicknum[1]=21;
clickbutton[0]=clickbutton[1]=null;
countnum=countnum+1;
while(countnum==10)
{
JOptionPane.showMessageDialog(null,"Congratulations");
countnum=0;
break;
};
}
else
if (clickbutton[0]!=null&&(((ImageIcon)clickbutton[0].getIcon()).toString().equals(((ImageIcon)clickbutton[1].getIcon()).toString())==false))
{
try
{
System.out.println("sleep 2");
Thread.sleep(400);
}
catch(InterruptedException a)
{}
clickbutton [0].setIcon(defaulticon);
clickbutton [1].setIcon(defaulticon);
clicknum[0]=clicknum[1]=21;
clickbutton[0]=clickbutton[1]=null;
}
clicknum [0]=clicknum [1];
clickbutton [0]=clickbutton [1];
}
}
}
class Monitor implements ActionListener {
public void actionPerformed(ActionEvent e) {
JMenuItem b =(JMenuItem) e.getSource();
if (b.getText().equals("Quit"))
System.exit(0);
else if(b.getText().equals("New"))
{
for(int i=0;i<20;i++)
memory.buttonarray[i].setIcon(new ImageIcon("0.jpg"));
memory.startGame();
}
else if (b.getText().equals("how to play"))
{
TextArea rule =new TextArea("everytime you click two buttons ,if their color is the same ,they disappeared.if you finish all the button in time,you win.",5,20,1);
rule.setFont(new Font( "",Font.BOLD, 18));
JOptionPane jpane=new JOptionPane();
jpane.add(rule);
jpane.showMessageDialog(jpane,rule,"how to play",JOptionPane.DEFAULT_OPTION);
}
else if (b.getText().equals("about this game"))
{
TextArea about =new TextArea("version 1.1,by ruby and qlien,2007/4/11",5,20,1);
about.setFont(new Font( "",Font.BOLD, 18));
JOptionPane jpane2=new JOptionPane();
jpane2.add(about);
jpane2.showMessageDialog(jpane2,about,"how to play",JOptionPane.DEFAULT_OPTION);
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -