?? memorytestpane.java
字號:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.LinkedList;
import java.io.*;
public class MemoryTestPane extends JPanel implements ActionListener
{
RandomSetIcon 排列圖標=null;
Block block[];
ImageIcon icon[];
LinkedList listIocn=null,
listBlock=null;
int 行數=0,列數=0;
int success=0;
int time=0;
javax.swing.Timer 計時器=null;
JTextField 顯示時間=null;
File gradeFile=null;
boolean 計時器是否啟動=false;
public MemoryTestPane(Block[] block,ImageIcon[] icon,int m,int n,File f)
{
排列圖標=new RandomSetIcon();
this.block=block;
this.icon=icon;
行數=m;
列數=n;
gradeFile=f;
listIocn=new LinkedList();
listBlock=new LinkedList();
setLayout(new BorderLayout());
JPanel center=new JPanel();
center.setLayout(new GridLayout(行數,列數));
for(int i=0;i<block.length;i++)
{
center.add(block[i]);
block[i].addActionListener(this);
}
JPanel south=new JPanel();
顯示時間=new JTextField(12);
顯示時間.setEditable(false);
顯示時間.setForeground(Color.red);
south.add(顯示時間);
add(center,BorderLayout.CENTER);
add(south,BorderLayout.SOUTH);
排列圖標.隨機設置圖標(block,icon);
計時器=new Timer(1000,this);
計時器是否啟動=false;
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() instanceof Block)
{
Block 方塊=(Block)e.getSource();
ImageIcon 翻開時的圖標=方塊.獲取翻開時的圖標();
方塊.設置圖標(翻開時的圖標);
if(listIocn.size()==0)
{
listIocn.add(翻開時的圖標);
listBlock.add(方塊);
success=1;
}
else
{
ImageIcon temp=(ImageIcon)listIocn.getLast();
if(temp==翻開時的圖標&&!(listBlock.contains(方塊)))
{
success=success+1;
listIocn.add(翻開時的圖標);
listBlock.add(方塊);
if(success==列數)
{
for(int i=0;i<block.length;i++)
{
block[i].setEnabled(false);
}
for(int j=0;j<listBlock.size();j++)
{
Block b=(Block)listBlock.get(j);
b.setDisabledIcon(b.獲取翻開時的圖標());
}
計時器.stop();
Record record=new Record(gradeFile);
record.setTime(time);
record.setVisible(true);
}
}
else if((temp!=翻開時的圖標)&&(!(listBlock.contains(方塊))))
{
listIocn.clear();
listBlock.clear();
listIocn.add(翻開時的圖標);
listBlock.add(方塊);
success=1;
for(int i=0;i<block.length;i++)
{
if(方塊!=block[i])
{
block[i].設置圖標(block[i].獲取關閉時的圖標());
}
}
}
}
if(計時器是否啟動==false)
{
time=0;
計時器.start();
計時器是否啟動=true;
}
}
if(e.getSource()==計時器)
{
time=time+1;
顯示時間.setText("您的用時:"+time+"秒");
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -