各位大哥大姐好,刚注册完,发个开窗户游戏源码来,高手们别笑喔! 无法粘附件上面,只好直接粘源码了 100% 纯 JAVA 编写, 可以在任何系统上运行,比如苹果电脑和LINUX等 以下是源代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; class OpenWindows{ public static void main(String[] args){ JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame=new JFrame("开窗户游戏"); frame.getContentPane().add(new Mainpanel()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } } class Mainpanel extends JPanel{ PanelC pc=new PanelC(); PanelS ps=new PanelS(pc); public Mainpanel(){ this.setLayout(new BorderLayout()); this.add(pc,"Center"); this.add(ps,"South"); } } //方块面板 class PanelC extends JPanel{ JButton[] jb=new JButton[25]; Color c; public PanelC(){ this.setLayout(new GridLayout(5,5)); for(int i=0;i<25;i++){ jb[i]=new JButton(); jb[i].setActionCommand(String.valueOf(i)); c=jb[i].getBackground(); //获得默认颜色 jb[i].addActionListener(new OpenOther()); this.add(jb[i]); } this.setPreferredSize(new Dimension(300,300)); } class OpenOther implements ActionListener{ public void actionPerformed(ActionEvent a){ String y=a.getActionCommand(); int x=Integer.parseInt(y); Select(x); IsWin(); } //判断九种情况 private void Select(int x){ if(x==0){ ChangeColor(jb[x]); ChangeColor(jb[x+1]); ChangeColor(jb[x+5]); }else if(x>0 && x<4){ ChangeColor(jb[x]); ChangeColor(jb[x-1]); ChangeColor(jb[x+1]); ChangeColor(jb[x+5]); }else if(x==4){ ChangeColor(jb[x]); ChangeColor(jb[x-1]); ChangeColor(jb[x+5]); }else if(x==20){ ChangeColor(jb[x]); ChangeColor(jb[x-5]); ChangeColor(jb[x+1]); }else if(x==24){ ChangeColor(jb[x]); ChangeColor(jb[x-5]); ChangeColor(jb[x-1]); }else if(x>20 && x<24){ ChangeColor(jb[x]); ChangeColor(jb[x-5]); ChangeColor(jb[x-1]); ChangeColor(jb[x+1]); }else if(x%5==0){ ChangeColor(jb[x]); ChangeColor(jb[x-5]); ChangeColor(jb[x+1]); ChangeColor(jb[x+5]); }else if(x%5==4){ ChangeColor(jb[x]); ChangeColor(jb[x-5]); ChangeColor(jb[x-1]); ChangeColor(jb[x+5]); }else{ ChangeColor(jb[x]); ChangeColor(jb[x-5]); ChangeColor(jb[x-1]); ChangeColor(jb[x+1]); ChangeColor(jb[x+5]); } } //改变周围颜色函数 private void ChangeColor(JButton jb){ if(jb.getBackground()==c) jb.setBackground(Color.white); else jb.setBackground(c); } //判断是否胜出 private void IsWin(){ int a=1; for(int i=0;i<25;i++) if(jb[i].getBackground()==Color.white) a++; if(a>25) JOptionPane.showMessageDialog(null,"恭喜过关"); } } } class PanelS extends JPanel{ JLabel jl=new JLabel("开窗户游戏"); JButton jbS=new JButton("重置"); PanelC pc; public PanelS(PanelC pc){ this.pc=pc; jbS.addActionListener(new Reset()); this.add(jl); this.add(jbS); } class Reset implements ActionListener{ public void actionPerformed(ActionEvent a){ for(int i=0;i<25;i++){ pc.jb[i].setBackground(pc.c); } } } } 
|