贴上小弟第一件作品,swing的game,各大牛拍砖。

u010904025 2013-06-25 03:21:15

import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.Timer;

public class GameOne
{
public static long timestart;
public static long timenow;
private static int screenHerght;
private static int screenWidth;
private static Random random = new Random();
public static JButton[] jbutton= new JButton[100];
public static ArrayList<String> arraylist = new ArrayList<String>();
public static ArrayList<String> arraylist1 = new ArrayList<String>();
public static JFrame gamestart = new JFrame("用最短的时间选出两两相同的数字!");;
public static JButton start=new JButton("game start!");;
public static JFrame jframe= new JFrame("Game!");;
public static Timer timer=new Timer(1,new GameSox());;
public static void main(String[] args)
{
//取得当前屏幕大小
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize=kit.getScreenSize();
screenHerght=screenSize.height;
screenWidth=screenSize.width;
//放置开始窗口
gamestart.setLocation(screenWidth/3, screenHerght/2);
gamestart.setSize(320,150);
gamestart.add(start);
start.addActionListener(new GameSix());
gamestart.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
gamestart.setResizable(false);
//设置主窗口
jframe.setTitle("Game!");
jframe.setEnabled(false);
jframe.setLayout(new GridLayout(10,10));
jframe.setSize(650,650);
jframe.setLocation(screenWidth/4, screenHerght/4);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setResizable(false);
//取得随机数字
for(int i =0;i<100;i++)
{
jbutton[i]=new JButton(String.valueOf(random.nextInt(20)));
arraylist1.add(jbutton[i].getText());
}
for(int i =0;i<100;i++)
{
for(int k = 0;k<100;k++)
{
if((arraylist1.get(i)).equals(arraylist1.get(k))&&i!=
k&&arraylist1.get(i)!="aa")
{
arraylist1.set(i,"aa");
arraylist1.set(k,"aa");
}
}
}
for(int i =0;i<100;i++)
{
if(arraylist1.get(i)!="aa")
{
for(int k = 0;k<100;k++)
{
if(i!=k&&arraylist1.get(k)!="aa")
{
jbutton[i].setText(jbutton[k].getText());
arraylist1.set(i,"aa");
arraylist1.set(k,"aa");
break;
}
}
}
}
//将按钮加入到主窗口
for(int i =0;i<100;i++)
{
for(int k = 0;k<100;k++)
{
jframe.add(jbutton[i]);
jbutton[i].setBackground(Color.orange);
jbutton[i].addActionListener(new GameSex());
}
}
//设置窗口可见
jframe.setVisible(true);
gamestart.setVisible(true);
}
}
class GameSex implements ActionListener
{
//Override actionPerformed
@Override
public void actionPerformed(ActionEvent e)
{
for(int i = 0;i<100;i++)
{
//循环出事件按钮
if(GameOne.jbutton[i].hashCode()==e.getSource().hashCode())
{
//button set Color.red
GameOne.jbutton[i].setBackground(Color.red);
//arraylist.add button.text
GameOne.arraylist.add(GameOne.jbutton[i].getText());
//处理不同text的buttons
if(e.getActionCommand().equals(GameOne.arraylist.get(0))==false)
{
//循环出当前的button
for(int k = 0;k<100;k++)
{
//条件:上下的buttons不是同一个且都是Color.red
if(i!=k&&GameOne.jbutton[k].getBackground()==Color.red)
{
//均恢复为Color.orange
GameOne.jbutton[i].setBackground(Color.orange);
GameOne.jbutton[k].setBackground(Color.orange);
//arraylist.clear
GameOne.arraylist.clear();
}
}
}
//处理相同text的buttons
if(GameOne.jbutton[i].getBackground()==Color.red&&e.
getActionCommand().equals(GameOne.arraylist.get(0)))
{
for(int k = 0;k<100;k++)
{
//条件:buttons均是Color.red且排除是同一个button
if(GameOne.jbutton[k].getBackground( )==
GameOne.jbutton[i].getBackground( )&&i!=k
&&GameOne.arraylist.size()>105)
{
GameOne.arraylist.clear();
//buttons.Text相同的清除颜色
GameOne.jbutton[i].setBackground(Color.black);
GameOne.jbutton[k].setBackground(Color.black);
//buttons.Text相同的隐藏
GameOne.jbutton[i].setVisible(false);
GameOne.jbutton[k].setVisible(false);
//buttons.Text相同的设置为hashCode
GameOne.jbutton[i].setText
(String.valueOf(GameOne.jbutton[i].hashCode()));
GameOne.jbutton[k].setText
(String.valueOf(GameOne.jbutton[i].hashCode()));
break;
}
}
}
}
}
}
}
class GameSix implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
//gamestart.setVisible(false)
GameOne.gamestart.setVisible(false);
GameOne.jframe.setEnabled(true);
for(int i =0;i<100;i++)
{
GameOne.jbutton[i].setEnabled(true);
}
GameOne.jframe.setVisible(true);
GameOne.timer.start();
GameOne.timenow=System.currentTimeMillis();
}
}
class GameSox implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
int t=1;
GameOne.timestart = System.currentTimeMillis();
for(int i = 0;i<100;i++)
{
for(int k = 0;k<100;k++)
{

if(GameOne.jbutton[k].getBackground()==Color.black)
t = 0;
else
t = -1;
}
}
if(t==0)
{
GameOne.timer.stop();
}
if(GameOne.timestart/1000-GameOne.timenow/1000<60)
GameOne.jframe.setTitle("Game!You use time:"
+String.valueOf(GameOne.timestart/1000-GameOne.timenow/1000));
if((GameOne.timestart/1000-GameOne.timenow/1000)%60==0)
GameOne.jframe.setTitle("Game!You use time:"+String.valueOf
((GameOne.timestart-GameOne.timenow)/1000/60)+":"+"0");
if(GameOne.timestart/1000-GameOne.timenow/1000>60)
GameOne.jframe.setTitle("Game!You use time:"
+String.valueOf((GameOne.timestart-GameOne.timenow)/1000/60)+":"
+String.valueOf(((GameOne.timestart-GameOne.timenow)/1000)-
(((GameOne.timestart-GameOne.timenow)/1000)/60)*60));
}
}
...全文
600 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
oh_Maxy 2013-07-01
  • 打赏
  • 举报
回复
明日之星,很好!
wasdjk 2013-06-30
  • 打赏
  • 举报
回复
玩了一把,挺不错的。
浴氷夫斯基 2013-06-30
  • 打赏
  • 举报
回复
支持一下楼主,学编程跟练钢琴一样,最怕懒得动手我就是那种经常不动手的懒人,所以我总是不进步。。楼主加油~
Hello-Stone 2013-06-30
  • 打赏
  • 举报
回复
真心不错啊~~楼主如果再加上游戏结束后的一系列动作会更好的~~
login_21 2013-06-30
  • 打赏
  • 举报
回复
厉害啊,人才
「已注销」 2013-06-28
  • 打赏
  • 举报
回复
刚才玩了一把,明明已经完成了,但是时间没有停止。如果任务完成给个提示的话,是不是会更好。楼主很厉害。
wasdasdfqwer 2013-06-28
  • 打赏
  • 举报
回复
玩了一把
Uncertain_Magic 2013-06-28
  • 打赏
  • 举报
回复
挺不错的。
未来好遥远 2013-06-28
  • 打赏
  • 举报
回复
有个小BUG,就是运行以后不点击gamestart而是直接把gamestart窗口关掉的话,游戏界面就无法关闭了也不能拖动,任务栏右键关闭也不行,只能从进程强行关掉。
u010904025 2013-06-28
  • 打赏
  • 举报
回复
谢谢,你们给我的支持好大,最近准备做一个报考系统(jsp+servlet+swt+jdbc)。谢谢大家
rihaduo202 2013-06-27
  • 打赏
  • 举报
回复
支持!!
文心寒梅 2013-06-27
  • 打赏
  • 举报
回复
最美的词 2013-06-27
  • 打赏
  • 举报
回复
good job
JohnsonEE 2013-06-27
  • 打赏
  • 举报
回复
不错不错啊,我也是新手,学习学习
逍遥jc 2013-06-27
  • 打赏
  • 举报
回复
good job!
rockets311 2013-06-26
  • 打赏
  • 举报
回复
kittaaron 2013-06-26
  • 打赏
  • 举报
回复
顶一下,精神可嘉!大多数人就是缺少楼主这种肯动手的态度
熏肉大饼 2013-06-26
  • 打赏
  • 举报
回复
顶 lz!
xiars123 2013-06-26
  • 打赏
  • 举报
回复
so good,连连看的雏形
地下室森林 2013-06-25
  • 打赏
  • 举报
回复
非常厉害

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧