package GUI;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class OpenWindow extends JFrame implements ActionListener{
private JLabel label=new JLabel("开窗户游戏");
private JButton button[]=new JButton[25];
private JPanel top=new JPanel();
private JPanel bottom=new JPanel();
private final int width=400;
private final int height=400;
private JButton reset=new JButton("重置");
Color c;
public OpenWindow(){
top.setLayout(new GridLayout(5,5));
for(int i=0;i<button.length;i++){
button[i]=new JButton();
button[i].setBackground(Color.black);
button[i].addActionListener(this);
button[i].setActionCommand(String.valueOf(i));
c=button[i].getBackground();
top.add(button[i]);
}
this.add(top,BorderLayout.CENTER);
bottom.add(label);
bottom.add(reset);
reset.addActionListener(this);
this.add(bottom,BorderLayout.SOUTH);
this.setBounds(100, 100, width, height);
this.setTitle("开窗户游戏");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==reset){
for(int i=0;i<button.length;i++){
button[i].setBackground(Color.black);
}
}else{
int x=Integer.parseInt(e.getActionCommand());
selectIndex(x);
}
}
public void ChangeColor(JButton b){
if(b.getBackground()==c){
b.setBackground(Color.white);
}else{
b.setBackground(c);
}
}
public void selectIndex(int h){
if(h==0){
ChangeColor(button[h]);
ChangeColor(button[h+1]);
ChangeColor(button[h+5]);
}else if(h==4){
ChangeColor(button[h]);
ChangeColor(button[h-1]);
ChangeColor(button[h+5]);
}else if(h==20){
ChangeColor(button[h]);
ChangeColor(button[h+1]);
ChangeColor(button[h-5]);
}else if(h==24){
ChangeColor(button[h]);
ChangeColor(button[h-1]);
ChangeColor(button[h-5]);
}else if(1<=h&&h<=3){
ChangeColor(button[h]);
ChangeColor(button[h+1]);
ChangeColor(button[h-1]);
ChangeColor(button[h+5]);
}else if(21<=h&&h<=23){
ChangeColor(button[h]);
ChangeColor(button[h+1]);
ChangeColor(button[h-1]);
ChangeColor(button[h-5]);
}else if(h%5==0){
ChangeColor(button[h]);
ChangeColor(button[h+1]);
ChangeColor(button[h-5]);
ChangeColor(button[h+5]);
}else if(h%5==4){
ChangeColor(button[h]);
ChangeColor(button[h-1]);
ChangeColor(button[h-5]);
ChangeColor(button[h+5]);
}else{
ChangeColor(button[h]);
ChangeColor(button[h-1]);
ChangeColor(button[h-5]);
ChangeColor(button[h+5]);
ChangeColor(button[h+1]);
}
}
public void result(){
int count=0;
for(int i=0;i<button.length;i++){
if(button[i].getBackground()==c){
count++;
}
}
if(count==25){
JOptionPane.showMessageDialog(this, "恭喜你,你赢了!", "消息对话框", JOptionPane.INFORMATION_MESSAGE);
}
}
public static void main(String[] args) {
OpenWindow window=new OpenWindow();
}
}
分享到:
相关推荐
Java 游戏 JPanel类 JButton GridLayout ActionListener实现
我用java做的一个小程序 已经调试好了 很好用
这是用java编写的一个小游戏,复制后编译运行即可。游戏界面为25个小块组成的大窗户,每点击一个小块,该小块及周围的四个小块改变颜色,直到所有的小块变成白色就算成功了。
总的来说,“Delphi写的关窗子小游戏”是一个典型的Delphi界面编程示例,它涉及到控件布局、事件处理、状态管理和逻辑判断等多个方面的知识。通过研究这个游戏的源码,不仅可以提升Delphi编程技能,也能加深对面向...
在本项目中,我们将探讨如何使用Java编程语言实现一个名为"开窗户"的小游戏。这个游戏的目标是通过单击小窗户使所有窗户的颜色最终统一。在这个过程中,我们将涉及到以下几个关键的编程概念和技术: 1. **图形用户...
在Java版本的开窗游戏中,我们通常会遇到一个数组或列表,表示一排窗户的状态,然后通过一系列规则来改变这些窗户的开闭状态。在这个Java实现中,我们将探讨如何使用面向对象的编程思想来解决这个问题。 首先,让...
"开窗户游戏"是一个简单的交互式游戏,玩家可能需要通过6个按键控制游戏中的角色或物体在4个方向(上、下、左、右)移动。这些按键通常连接到单片机的I/O引脚,通过读取这些引脚的状态,单片机可以检测到用户的操作...
是由javase的swing知识编写,属于小SE
delphi的一个小游戏源码 uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,shellapi; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; ...
描述中提到“这是用JAVA编写的开窗户小游戏”,意味着这个小游戏的主要功能可能涉及模拟打开窗户这样的交互操作。 首先,我们要理解Java在游戏开发中的应用。Java是一种广泛使用的面向对象的编程语言,因其跨平台的...
在Unity游戏引擎中,开发人员经常需要对3D模型进行各种操作,比如“墙体,开洞”这样的功能,以满足游戏场景的复杂需求。本文将详细介绍如何通过代码手动修改Mesh来实现Unity中的“mesh挖洞”效果,即在墙体上开洞。...
小学二年级小游戏脑筋急转弯是一种非常有趣且富有教育意义的活动,旨在培养孩子们的思维敏捷性、逻辑推理能力和创新能力。这些题目通常设计得既简单又巧妙,通过趣味性的问答形式,激发孩子们对知识的好奇心和探索...
总的来说,Java开发的物业管理小游戏结合了实际岗位需求,以寓教于乐的方式帮助用户掌握物业管理知识,同时也展示了Java在构建模拟应用方面的灵活性和实用性。通过类似的游戏,可以扩展到更复杂的物业管理情境,如...
这种效果通常用于游戏、交互式应用或者动态展示中,增加视觉吸引力。在本案例中,"回放"功能的实现使得用户可以重复观看擦窗户的过程,增加了用户体验的趣味性。 首先,让我们深入理解这个效果的实现原理。AS3...
- **擅长水系法术、元素碎块、风暴要塞窗户**:技能和特殊效果在游戏中有着举足轻重的地位。 - **断筋怒击、远程方法调用、加速符**:这些都是角色可以使用的技能或者效果增强道具。 6. **其他游戏元素** - **...
【标题】中的“带有 ESP-01 的 无线 MQTT 窗户传感器”是指一个基于ESP-01微控制器的物联网设备,它被设计用来检测窗户的状态(如开闭)并通过MQTT协议发送数据到远程服务器。ESP-01是Espressif Systems公司生产的一...
3dsMax是一款广泛应用于建筑可视化、游戏开发和影视特效等领域的3D建模软件,而“3dmax一键PVC窗生成器插件”则是一个专为提高3D建模效率设计的工具。这款插件的主要功能是快速生成PVC(聚氯乙烯)材质的窗户模型,...
遮阳篷可以为街道增添生活气息,建筑部件如阳台、窗户等则能反映出建筑的个性,而标志则可以用来标识商店、公司或者公共服务设施,帮助玩家更好地理解和导航游戏世界。 标签中提到了“3d cocos2d”,这意味着这些...
例如,从第9页到第20页,游戏再次展开,但这次可能会出现不同的组合,如window(窗户)和door(门),或者fan(风扇)和shelf(架子),这样既能检验学生对之前学过单词的记忆,也能引入新的单词,使学习过程更具...
首先,消防小游戏《消防 GO GO GO》以寓教于乐的形式,让孩子们熟悉消防车的声音("唔…"),了解火警电话119,学会在有浓烟的情况下用双手捂住口鼻,以及在逃生时保持安静、有序和快速。这种方式有助于强化关键知识...