www.pudn.com > SOFT.rar > Game.java


//Game.java 
 
import java.awt.*; 
import java.awt.event.*; 
import java.awt.image.*; 
import javax.swing.*; 
import javax.swing.JOptionPane; 
 
public class Game extends JFrame { 
	 
	JPanel contentPane; 
	 
	private GameTable gTable; 
	 
	//从本地加载图像 
	private Image img0,img1; 
	//自动生产图像 
	private int[] im0; 
	private int[] im1; 
	 
	private JButton btStart,btRestart;  
	 
	private int nWhich; 
	private int nNext; 
	 
	private Timer timer; 
	private int nTime=500; 
	 
	private JLabel scoreLabel; 
	private int nScore=0; 
	 
	boolean canMove=false; 
	 
	private Root root; 
	 
	private JMenuBar jMenuBar= new JMenuBar(); 
	 
	private JMenu jFile=new JMenu(); 
	private JMenuItem jStart=new JMenuItem(); 
	private JMenuItem jExit=new JMenuItem(); 
	 
	private JMenu jOption =new JMenu(); 
	 
	private JCheckBoxMenuItem jOptLow=new JCheckBoxMenuItem(); 
	private JCheckBoxMenuItem jOptMiddle=new JCheckBoxMenuItem(); 
	private JCheckBoxMenuItem jOptHigh=new JCheckBoxMenuItem(); 
	 
	private JMenu jHelp=new JMenu(); 
	private JMenuItem jAbout =new JMenuItem();	 
	 
	public Game(){ 
		super("俄罗斯方块"); 
		 
		contentPane = (JPanel) this.getContentPane(); 
    		contentPane.setLayout(null); 
    		 
		setBounds(130,60,520,500); 
		 
		scoreLabel=new JLabel("0"); 
		scoreLabel.setBounds(400,300,50,50); 
		 
		 
		btStart =new JButton("开始"); 
		btRestart=new JButton("重新开始"); 
		 
		btStart.setBounds(360,200,75,40); 
		btRestart.setBounds(360,260,80,40); 
		 
		btStart.setToolTipText("游戏开始"); 
		btRestart.setToolTipText("重新开始游戏"); 
		 
		contentPane.add(btStart,null); 
		contentPane.add(btRestart,null); 
		contentPane.add(scoreLabel,null); 
		 
		//自己生产图像 
		im0=new int[15*15]; 
		im1=new int[15*15]; 
		 
		for(int i=0;i<15*15;i++) 
		{ 
			im0[i]=0xffffffff; 
			 
			int red,green,blue; 
			red=(int)(Math.random()*255); 
			green=255-red; 
			im1[i]=i<<24|red<<16|green<<16|255; 
			 
			if(red==green) 
			{ 
				System.out.println("ok"); 
			} 
		} 
		 
		ImageProducer ip0=new MemoryImageSource(15,15,im0,0,15); 
		img0=createImage(ip0); 
		 
		ImageProducer ip1=new MemoryImageSource(15,15,im1,0,15); 
		img1=createImage(ip1); 
		 
		/* 
		//也可以通过加载图像来进行显示 
		MediaTracker tracker = new MediaTracker(this); 
		img0=Toolkit.getDefaultToolkit().getImage("b0.jpg"); 
		img1=Toolkit.getDefaultToolkit().getImage("b1.jpg"); 
		 
		tracker.addImage(img0,0); 
		tracker.addImage(img1,1); 
		 
		//等待图像的完全加载 
		try{ 
		tracker.waitForID(0); 
		}catch(InterruptedException e2){ e2.printStackTrace();} 
		 
		try{ 
		tracker.waitForID(1); 
		}catch(InterruptedException e2){ e2.printStackTrace();} 
		*/ 
		 
		//得到图像的高度和宽度 
		/* 
		int iw0=img0.getWidth(this); 
		int ih0=img0.getHeight(this); 
		 
		int iw1=img1.getWidth(this); 
		int ih1=img1.getHeight(this); 
		 
		System.out.println("the b0:"+iw0+"  "+ih0); 
		System.out.println("the  b1:"+iw1+"  "+iw1);    
		*/ 
		 
		//初始化游戏桌 
		gTable.x=15; 
		gTable.y=20; 
		 
		gTable.myTable=new int[gTable.x][gTable.y]; 
		 
		for(int i=0;i=0;j--) 
						for(int i=0;i