这是我在论坛上一个朋友出的一道题目,然后我再用java来写的。总共3个类。
public class mainapp {
public static void main(String[] args) { Cellsgroup test =
new Cellsgroup(); test.setVisible(
true); }}
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class Cellsgroup
extends JFrame {
private static final long serialVersionUID = 1L;
public int rows =
10;
public int coloums =
10; Cell[] Cellgroup =
new Cell[rows*coloums];
public Cellsgroup(){
super(
"cell"); Toolkit mykit =
this.getToolkit(); Dimension wndsize = mykit.getScreenSize();
int size = wndsize.width/
2;
this.setBounds((wndsize.width-size)/
2,(wndsize.height-size)/
2 ,size,size);
this.allcell();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(
true); }
private void allcell() { GridLayout layout =
new GridLayout(rows,coloums); Container content =
this.getContentPane(); content.setLayout(layout);
for(
int i =
0;i<Cellgroup.length;i++){ Cellgroup[i] =
new Cell(i,
this); content.add(Cellgroup[i]); }
for(Cell cell:Cellgroup){ cell.initialfrinends(cell.getNo()); } }}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JLabel;
import javax.swing.Timer;
public class Cell
extends JLabel {
private static final long serialVersionUID = 1L;
private boolean status;
private Cell[] cellfriend;
private Cellsgroup Cellsgroup;
private int no;
public int getNo() {
return no; } Timer t ;
public boolean isStatus() {
return status; }
public void setStatus(
boolean status) {
if(status){
this.setText(
"Cell"); }
else{
this.setText(
""); }
this.repaint();
this.status = status; }
public Cell(
int no,Cellsgroup Cellsgroup){
this.Cellsgroup = Cellsgroup;
this.initialStatus();
this.no = no; t =
new Timer((
int) (
200*Math.random()+
900),
new timelistener()); t.start(); }
private void initialStatus(){
if(Math.random()>
0.5){
this.setStatus(
true); }
else{
this.setStatus(
false); } }
public void initialfrinends(
int no){ cellfriend =
new Cell[
8];
this.setOneFriend(
1, no-Cellsgroup.coloums);
if(((no-
1)