亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? newpanel.java

?? 俄羅斯方塊的源代碼
?? JAVA
字號(hào):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.io.*;
import java.io.Serializable;
import java.util.*;
public class NewPanel extends JPanel implements ActionListener ,Runnable,KeyListener{
	
	Block block;//方塊主體類 
	int speed;
	Sound sound; //聲音類
	Image  icon1,icon2,icon3,icon4,icon5,bg;
	ImageIcon image0,image1,image2,image3,image4,image5,image6,over;
	JFrame frame;
	JLabel imageLbl,scoreLbl,levelLbl;
	Thread thread;
	JPanel control;
	JMenuBar menuBar;
	JMenu game,help;
	String name;
	String levelType;
	boolean isFirstThread;
	StringBuffer helpText;
	JMenuItem start,record,exit,setting,author,introduction;
    
	Color color[];
	int level;
	boolean isStop;
	public NewPanel()
	{
		initImage();
		initOther();
		initFrame();
	}
	
	public void initFrame()
	{
		frame= new JFrame("俄羅斯方塊");
		this.setFocusable(true);
	    menuBar = new JMenuBar();
	    game = new JMenu("游戲");
	    help = new JMenu("幫助");
	    start = new JMenuItem("Start");
	    record = new JMenuItem("Record");
	    record.addActionListener(this);
	    setting=new JMenuItem("Control");
	    setting.addActionListener(this);
	    exit=new JMenuItem("Exit");
	    author = new JMenuItem("作者");
	    introduction = new JMenuItem("說明");
	    author.addActionListener(this);
	    start.addActionListener(this);
	    introduction.addActionListener(this);
	    introduction.addActionListener(this);
	    exit.addActionListener(this);
	    game.add(start);
	    game.add(record);
	    game.add(setting);
	    game.add(exit);
	    help.add(author);
	    help.add(introduction);
	    frame.setJMenuBar(menuBar);
	    menuBar.add(game);
	    menuBar.add(help);
		frame.setBounds(100,100,548,580);
		frame.setResizable(false);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		imageLbl = new JLabel(" ",JLabel.CENTER);
		
		scoreLbl = new JLabel("",JLabel.CENTER);
		levelLbl = new JLabel("",JLabel.CENTER);
		
		this.setLayout(null);
		imageLbl.setBounds(351,117,90,90);
		imageLbl.setBackground(new Color(253,230,136));
		imageLbl.setOpaque(true);
		
		levelLbl.setBounds(350,241,52,33);
		levelLbl.setBackground(new Color(209,176,131));
		levelLbl.setOpaque(true);
		levelLbl.setForeground(Color.red);
		scoreLbl.setBounds(409,243,77,30);
		scoreLbl.setBackground(new Color(209,176,131));
		scoreLbl.setOpaque(true);
		scoreLbl.setForeground(Color.red);
		
		add(imageLbl);
		add(scoreLbl);
		add(levelLbl);
		helpText=new StringBuffer();
		helpText.append("使用說明\n");
		helpText.append("通過上下左右控制方塊的變換\n");
		helpText.append("空格為加速,回車是暫停,具體的操作請(qǐng)見控制面板\n");
		
		this.addKeyListener(this);
		frame.add(this,"Center");
		frame.setVisible(true);
		
		
	}
	
	 
     public String  setLevel()//設(shè)置特定的等級(jí)
     {
     	switch(block.score/100)
     	{
     		case 0 : levelLbl.setText("工兵");break;
     		case 1 : levelLbl.setText("排長"); break;
     		case 2 : 
     		case 3 : levelLbl.setText("連長");break;
     		case 4 : 
     		case 5 : levelLbl.setText("營長");break;
     		
     		case 6 : 
     		case 7 : levelLbl.setText("團(tuán)長");break;
     		case 8 : levelLbl.setText("軍長");break;
     		case 9 : levelLbl.setText("司令");break;
     		
     	}
     	
     	levelType=levelLbl.getText();
     	return levelType;
     }
     

	 public void setNext(int random)//creat next image
	 {
	 	switch (random)
	 	{
	 		case 0: this.imageLbl.setIcon(image0); break;
	 		case 1: this.imageLbl.setIcon(image1); break;
	 		case 2: this.imageLbl.setIcon(image2); break;
	 		case 3: this.imageLbl.setIcon(image3); break;
	 		case 4: this.imageLbl.setIcon(image4); break;
	 		case 5: this.imageLbl.setIcon(image5); break;
	 		case 6: this.imageLbl.setIcon(image6); break;
	 		default : System.out.println("錯(cuò)誤"); break;
	 	}
	 }
	
	public void initOther()
	{
		block = new Block(this);
		block.initGame();
		level=1;
		name="gg";
		levelType="工兵";
		isStop=true;
	//	this.isPlayMusic=true;\
	    isFirstThread = true;
		sound = new Sound();
		speed=500;
		this.setDefalultRecord();
	}
	public void initImage()
	{
		Toolkit tk=	Toolkit.getDefaultToolkit();
		bg=tk.getImage("image/bg.jpg");
		image0=new ImageIcon("image/0.gif");
	    image1=new ImageIcon("image/1.gif");
	    image2=new ImageIcon("image/2.gif");
	    image3=new ImageIcon("image/3.gif");
	    image4=new ImageIcon("image/4.gif");
	    image5=new ImageIcon("image/5.gif");
	    image6=new ImageIcon("image/6.gif");
		icon1 = tk.getImage("image/10.jpg");
	    over=new ImageIcon("image/over.gif");

		
		
	}
	public void actionPerformed(ActionEvent e){
       	if(e.getSource()==start)
		{
		  if(isFirstThread)
		  {
		     Thread thread = new Thread(this);
	         thread.start();
	         isFirstThread=false;
		  } 
		   block.initGame();
		   block.creatBlock();
		   block.go=true;
		   sound.play1();
		   
		   
		   
			
		}
		
		if(e.getSource()==exit)
		{
			System.exit(0);
		}
		
		if(e.getSource()==this.setting)
		{
			new ControlPanel(this);
			block.go=false;
		}
		
		if(e.getSource()==this.record)
		{
		   new RecordPanel(getRecord());
		}
		
		if(e.getSource()==author)
		{
			JOptionPane.showMessageDialog(null, "俄羅斯方塊 V2.0 \n開發(fā)者:");
		}
		
		if(e.getSource()==this.introduction)
		{
			JOptionPane.showMessageDialog(null, helpText.toString());
		}
	}
	
	
	
	public void run()
	{
	   int i=0;
	    boolean set=false;
	  	while(true )
		{
	
			if(block.go)
			{
			set=false;
			try
			{
			 	
			 Thread.sleep(speed);
			}catch(Exception e){}
			block.moveDown();
			
			this.setNext(block.random);
			this.setLevel();
			this.scoreLbl.setText(String.valueOf(block.score));
			i++;
			if(this.block.dead && !set)
			{
				this.setRecord();
				set=true;
			}
		    
			}
	        repaint();
			
		}
	}
	
	

	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		g.drawImage(bg,0,0,this);
		if(block.dead)
		{
             this.imageLbl.setIcon(over);
		}
		for(int i=0;i<18;i++)
		{
			for(int j=0;j<11;j++)
			{
			
			  if(block.game[i][j]==1 || block.game[i][j]==2)
			   {
				
				  
				  g.drawImage(icon1,j*27+34,i*27+20,this);
			   
			   }
				 
				 
			}
		}
	}
	public void keyTyped(KeyEvent e){}
	public void keyReleased(KeyEvent e){}
	public void keyPressed(KeyEvent e)
	{
		if(e.getKeyCode()==e.VK_RIGHT)
		{
			block.moveRight();
		}
		
		if(e.getKeyCode()==e.VK_LEFT)
		{
			block.moveLeft();
		}
		
		if(e.getKeyCode()==e.VK_UP)
		{
			block.XuanZhuan();
		}
		
		if(e.getKeyCode()==e.VK_SPACE)
		{
			block.speedGo();
			
		}
		
		if(e.getKeyCode()==e.VK_DOWN)
		{
			block.moveDown();
		}
		
		if(e.getKeyCode()==e.VK_ENTER)
		{

			if(block.go)
			{
				block.go=false;
			}
			
			else
			{
				block.go=true;
			}

			
		}
	
		repaint();
	}
	
	public void setDefalultRecord()
	{
		Person[] person = new Person[10];
 		LinkedList link = new LinkedList();
 		
 		try
  		{
  			ObjectOutputStream	objectOut= new  ObjectOutputStream(
  		    	                               new BufferedOutputStream(
  		    	            	                   new FileOutputStream("hero.txt")));
  		    
  		for(int i=0;i<10;i++)
  		{
  			person[i]=new  Person();
  			link.add(person[i]);
  		}
  		
  		objectOut.writeObject(link);
  		objectOut.flush();
  		objectOut.close();
  		
  		}catch(Exception e){}
	}
	
	
	public void setRecord()
	{
		LinkedList link = getRecord();
		
	gg:	for(int i=0;i<10;i++)
		{
			if(this.block.score>((Person)(link.get(i))).score)
			{
			    name= (String)JOptionPane.showInputDialog(null,"恭喜您,成功進(jìn)入前5名,請(qǐng)輸入您的名字");
			   
			   	Person p = new Person(this.name,this.levelType,this.block.score);
				link.add(i,p);
				link.removeLast();
				break gg ;
			}
		}
		
		try
		{
				ObjectOutputStream	objectOut= new  ObjectOutputStream(
  		    	                   new BufferedOutputStream(
  		    	            	       new FileOutputStream("hero.txt")));
  		 objectOut.writeObject(link);
  		 objectOut.flush();
  		 objectOut.close();
		}catch(Exception e){};
		
		
		
	}
	
	public LinkedList getRecord()
	{
	    File file=new File("hero.txt");
	    LinkedList link=null;
  		boolean ishero=false;
  		if(file.length()==0)
  		{
  			try
  			{
  				file.createNewFile();
  				setDefalultRecord();
  				System.out.println("ggg");
  				
  			}   catch(Exception e){System.out.println("the file is not found ");}
  		}
  		
  		try
  		{
  			ObjectInputStream	objectIn  =  new  ObjectInputStream(
  		    	                               new BufferedInputStream(
  		    	            	                  new FileInputStream("hero.txt")));
  		    link=(LinkedList)objectIn.readObject();
  		    objectIn.close();
	     }catch(Exception e){}
	     
	     return link;
	}
	public static void main(String[] arg){
	     NewPanel panel=new NewPanel();

	     
	}

}


 class  ControlPanel extends JPanel implements ActionListener{
	
	JRadioButton speed[];
	
	JRadioButton diff[];
	
	JRadioButton on,off;
	
	JRadioButton right,left;
	JPanel speedPanel,diffPanel,radioPanel,rotPanel;
	ButtonGroup speedGroup,diffGroup,radioGroup,rotDir;
	NewPanel panel;
	public ControlPanel(NewPanel panel)
	{
		this.panel=panel;
		initFrame();		
	}
	
	public void initFrame()
	{
	   speedPanel = new JPanel();
	   speedPanel.setBorder(new TitledBorder("速度"));
	   speedPanel.setLayout(new GridLayout(3,3,10,10));
	   speed = new JRadioButton[9];
	   speedGroup = new ButtonGroup();
	   for(int i=0;i<9;i++)
	   {
	   	speed[i]=new JRadioButton(String.valueOf(i+1));
	   	speedPanel.add(speed[i]);
	   	speed[i].addActionListener(this);
	   	speedGroup.add(speed[i]);
	   }
	   diffPanel = new JPanel(new GridLayout(2,4,10,10));
	   diffPanel.setBorder(new TitledBorder("難度"));
	   diff = new JRadioButton[8];
	   diffGroup= new ButtonGroup();
	   for(int i=0;i<8;i++)
	   {
	   	diff[i]= new JRadioButton(String.valueOf(i+1));
	   	diffPanel.add(diff[i]);
	   	diff[i].addActionListener(this);
	   	diffGroup.add(diff[i]);
	   }
	   
	   radioPanel = new JPanel(new GridLayout(1,2,10,10));
	   radioPanel.setBorder(new TitledBorder("音樂"));
	   
	    on = new JRadioButton("音樂開");
		off = new JRadioButton("音樂關(guān)");
		radioPanel.add(on);
		radioPanel.add(off);
		
		radioGroup = new ButtonGroup();
		radioGroup.add(on);
		radioGroup.add(off);
	    on.addActionListener(this);
	    off.addActionListener(this);
	   
	    this.rotPanel = new JPanel(new GridLayout(1,2,10,10));
	    this.rotPanel.setBorder(new TitledBorder("旋轉(zhuǎn)方向"));
	    right = new JRadioButton("順時(shí)針");
	    right.addActionListener(this);
	    
	    left  = new JRadioButton("逆時(shí)針");
	    left.addActionListener(this);
	    this.rotDir = new ButtonGroup();
	    this.rotDir.add(right);
	    this.rotDir.add(left);
	    this.rotPanel.add(right);
	    this.rotPanel.add(left);
	   	this.setLayout(new GridLayout(4,1,10,10));
		this.add(speedPanel);
		this.add(diffPanel);
		this.add(radioPanel);
		this.add(this.rotPanel);		
		frame = new JFrame("控制面板");
		frame.setSize(300,350);
		frame.add(this,"Center");
		frame.setVisible(true);
	   
	   

	   
	   
	   
	   
	   	
	}
	public void actionPerformed(ActionEvent e){
		for(int i=0;i<9;i++)
		{
			if(e.getSource()==speed[i])
			{
			  panel.speed=(i+1)*100;
			}
			
			
			
		}
		
	    for(int i=0;i<8;i++)
	    {
	    	if(e.getSource()==diff[i])
	    	{
	    		panel.block.diff=i+1;
	    		panel.block.initGame();
	    	}
	    }
	    
	    if(e.getSource()==on)
	    {
	    	panel.sound.play1();
	    }
	    
	    if(e.getSource()==off)
	    {
	    	 panel.sound.stop();;
	    }
	    
	    if(e.getSource()==right)
	    {
	    	panel.block.rotDirection=1;
	    }
	    
	    if(e.getSource()==left)
	    {
	    	panel.block.rotDirection=2;
	    }
	   
		
		
	}


	JFrame frame;
	
	
}

 class RecordPanel extends JPanel {
 	
 	JTable table;
 	private String[] columnNames = { "姓名", "級(jí)別", "得分"};
 	Object object[][];
 	Block block;
 	LinkedList link;
 	public RecordPanel(LinkedList link)
 	{
 		frame = new JFrame();
 		this.link=link;
 		//table = new JTable(cells,columnNames);
 		object=new Object[10][3];
 		
 		showRecord();
 	//	table.setSize(100,100);
 		add(new JScrollPane(table), BorderLayout.CENTER);
 		frame.add(this);
 	    frame.setBounds(200,200,200,220);
 	//	frame.setResizable(false);
 		frame.setVisible(true);
 		
 	}
 	
 	public void showRecord()
 	{
 		for(int i=0;i<10;i++)
 		{
             object[i][0]=((Person)link.get(i)).name;
            // System.out.println(((Person)link.get(i)).name);
             object[i][1]=((Person)link.get(i)).level;
             object[i][2]=((Person)link.get(i)).score;
 		}
 		
 		table = new JTable(object,columnNames);
 		table.setPreferredScrollableViewportSize(new Dimension(150,170));
 		//table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
 	
 	//	table.setPreferredSize(new Dimension(50,50));
 	}
 	
 	 
 	
 	

 	
 	
 	
 	
 	
 	JFrame frame;
 	
 }
 
 class Person  implements  Serializable{
 	
 	String name="gg";
 	String level;
 	int    score;
 	
 	public Person(String name,String level,int score)
 	{
 		this.name=name;
 		this.level=level;
 		this.score=score;
 	}
 	
 	public Person()
 	{
 		this.name="gg";
 		this.level="工兵";
 		this.score=0;
 	}
 	
 	
 }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产日韩综合久久精品| 91精品国产91热久久久做人人| 国产精品久久久爽爽爽麻豆色哟哟 | 免费在线欧美视频| 欧美成人精品3d动漫h| 国产激情一区二区三区| 三级欧美在线一区| 国产精品成人网| 精品国产一区二区亚洲人成毛片| av不卡免费在线观看| 蜜臀av亚洲一区中文字幕| 亚洲成av人片一区二区梦乃| 2023国产精华国产精品| 精品入口麻豆88视频| 97aⅴ精品视频一二三区| 激情综合色播激情啊| 偷拍与自拍一区| 中文字幕一区二区在线播放| 自拍av一区二区三区| 国产午夜亚洲精品理论片色戒 | 国产毛片精品国产一区二区三区| 亚洲在线观看免费视频| 国产精品久久久久9999吃药| 久久久影视传媒| 日韩美一区二区三区| 欧美精品丝袜久久久中文字幕| 91精品福利在线| 国产夫妻精品视频| 色老头久久综合| 日韩欧美一区在线观看| 国产欧美日韩麻豆91| 亚洲一区二区三区视频在线| 国产精品成人免费精品自在线观看| 亚洲国产精品成人综合| 国产婷婷精品av在线| 久久亚洲一级片| 日韩国产欧美三级| 亚洲综合激情网| 韩国视频一区二区| 国产高清久久久久| 99re免费视频精品全部| 欧美午夜精品一区二区蜜桃| 色国产综合视频| 在线播放日韩导航| 精品免费日韩av| 日韩美女精品在线| 五月天婷婷综合| 另类的小说在线视频另类成人小视频在线 | 男男视频亚洲欧美| 国产女人18水真多18精品一级做| 久久久.com| 日韩美女在线视频| 国产精品麻豆久久久| 亚洲精品视频一区| 婷婷六月综合网| 精品中文字幕一区二区| 成人av动漫在线| 欧美精品自拍偷拍| 欧美一区二区三区免费| 国产精品色婷婷久久58| 亚洲午夜久久久久久久久电影网| 久久99精品一区二区三区三区| 91丨九色丨国产丨porny| 欧美美女一区二区| 中文文精品字幕一区二区| 国产精品初高中害羞小美女文| 午夜在线电影亚洲一区| 一区二区三区四区中文字幕| 日韩电影一二三区| 91日韩一区二区三区| 久久久精品中文字幕麻豆发布| 久久久国产精品不卡| 色综合色狠狠天天综合色| 欧洲精品一区二区三区在线观看| 欧美不卡视频一区| 亚洲一级不卡视频| 97aⅴ精品视频一二三区| 日韩欧美一区电影| 中文av一区二区| 欧美国产精品一区二区| 日韩一级二级三级| 中文字幕亚洲在| 久久国产夜色精品鲁鲁99| 国产高清不卡一区| 正在播放亚洲一区| 自拍偷拍欧美精品| 国产成a人亚洲精品| 欧美一区二区精品| 91年精品国产| 久久久久久久综合色一本| 日日夜夜精品视频天天综合网| 国产成人高清视频| 国产麻豆91精品| 午夜精品福利一区二区蜜股av| 不卡的av网站| 欧美一区二区三区在线视频| 亚洲成人av一区二区| 91在线小视频| 国产欧美一区二区精品忘忧草| 精品国产乱码久久| 亚洲高清视频在线| 精品一区二区日韩| 欧美精品在线视频| 亚洲综合成人在线视频| 在线中文字幕一区| 亚洲精品精品亚洲| 99视频精品在线| 九九**精品视频免费播放| 国产69精品久久久久毛片| 日韩欧美一区二区视频| 国产一区二区在线观看视频| 亚洲精品在线网站| jlzzjlzz亚洲日本少妇| 国产午夜亚洲精品理论片色戒| 青青青伊人色综合久久| 在线一区二区三区| 精品国产伦一区二区三区观看体验| 免费亚洲电影在线| 亚洲亚洲人成综合网络| 欧美三级韩国三级日本三斤| 成人午夜免费av| 国产精品无遮挡| 色婷婷精品大在线视频| 午夜视频在线观看一区二区 | 成人99免费视频| 久久精品一区四区| 亚洲欧美激情一区二区| av在线不卡电影| 91麻豆精品国产91久久久久久久久 | 国产精品福利一区| 99热在这里有精品免费| 亚洲国产成人porn| 欧美一级淫片007| 九九热在线视频观看这里只有精品| 日韩一区二区三区在线视频| 国产精品 欧美精品| 一区二区三区产品免费精品久久75| 色哟哟国产精品| 麻豆国产精品视频| ●精品国产综合乱码久久久久| 91国偷自产一区二区使用方法| 久久精品国产一区二区三| 亚洲人成网站色在线观看| 欧美一二三在线| 色综合中文字幕| 国产精品资源网| 日精品一区二区| 国产日韩影视精品| 欧美麻豆精品久久久久久| 99国产精品久久久久| 日韩电影在线观看网站| 亚洲永久精品大片| 国产精品日韩成人| 2021久久国产精品不只是精品| 日本乱人伦一区| 成人国产精品免费观看| 久久激情五月婷婷| 亚洲日穴在线视频| 国产午夜精品久久久久久免费视| 91福利国产成人精品照片| 国产69精品久久久久毛片| 麻豆精品精品国产自在97香蕉| 亚洲一区影音先锋| 久久网这里都是精品| 国产成人精品www牛牛影视| 首页综合国产亚洲丝袜| 一区二区三区在线播放| 亚洲天堂中文字幕| 久久精品一区二区三区四区| 日韩精品一区二区三区四区视频| 欧美日韩不卡视频| 99re热视频精品| 国产精品一区二区三区乱码| 一区二区三区免费| 最新日韩av在线| 国产精品你懂的在线欣赏| 国产视频一区二区在线观看| 欧美mv日韩mv| 日韩一区二区三区精品视频| 欧美猛男超大videosgay| 色哟哟在线观看一区二区三区| 蜜桃视频一区二区三区在线观看| 一区二区三区四区不卡在线 | 欧美亚洲国产bt| 色婷婷激情综合| 激情综合网最新| 国产在线观看一区二区| 亚洲图片激情小说| 亚洲免费观看高清完整版在线观看熊| 久久一区二区三区四区| 日本一区二区三区在线不卡| 国产欧美一区二区在线| **欧美大码日韩| 国产精品午夜免费| 中文字幕亚洲区| 亚洲免费av高清| 91精品免费在线观看| 91麻豆精品国产91久久久 | 国产91精品久久久久久久网曝门 | 91天堂素人约啪|