求一JAVA程序解释!最好每句后面都有注释!
importjava.util.*;importjavax.swing.*;publicclassLayMines{ImageIconmineIcon;LayMines(...
import java.util.*;
import javax.swing.*;
public class LayMines{
ImageIcon mineIcon;
LayMines() {
mineIcon=new ImageIcon("mine.gif");
}
public void layMinesForBlock(Block block[][],int mineCount){
int row=block.length;
int column=block[0].length;
LinkedList<Block> list=new LinkedList<Block>();
for(int i=0;i<row;i++) {
for(int j=0;j<column;j++)
list.add(block[i][j]);
}
while(mineCount>0){
int size=list.size(); // list返回节点的个数
int randomIndex=(int)(Math.random()*size);
Block b=list.get(randomIndex);
b.setIsMine(true);
b.setName("雷");
b.setMineIcon(mineIcon);
list.remove(randomIndex); //list删除索引值为randomIndex的节点
mineCount--;
}
for(int i=0;i<row;i++){
for(int j=0;j<column;j++){
if(block[i][j].isMine()){
block[i][j].setIsOpen(false);
block[i][j].setIsMark(false);
}
else {
int mineNumber=0;
for(int k=Math.max(i-1,0);k<=Math.min(i+1,row-1);k++) {
for(int t=Math.max(j-1,0);t<=Math.min(j+1,column-1);t++){
if(block[k][t].isMine())
mineNumber++;
}
}
block[i][j].setIsOpen(false);
block[i][j].setIsMark(false);
block[i][j].setName(""+mineNumber);
block[i][j].setAroundMineNumber(mineNumber);
}
}
}
}
} 展开
import javax.swing.*;
public class LayMines{
ImageIcon mineIcon;
LayMines() {
mineIcon=new ImageIcon("mine.gif");
}
public void layMinesForBlock(Block block[][],int mineCount){
int row=block.length;
int column=block[0].length;
LinkedList<Block> list=new LinkedList<Block>();
for(int i=0;i<row;i++) {
for(int j=0;j<column;j++)
list.add(block[i][j]);
}
while(mineCount>0){
int size=list.size(); // list返回节点的个数
int randomIndex=(int)(Math.random()*size);
Block b=list.get(randomIndex);
b.setIsMine(true);
b.setName("雷");
b.setMineIcon(mineIcon);
list.remove(randomIndex); //list删除索引值为randomIndex的节点
mineCount--;
}
for(int i=0;i<row;i++){
for(int j=0;j<column;j++){
if(block[i][j].isMine()){
block[i][j].setIsOpen(false);
block[i][j].setIsMark(false);
}
else {
int mineNumber=0;
for(int k=Math.max(i-1,0);k<=Math.min(i+1,row-1);k++) {
for(int t=Math.max(j-1,0);t<=Math.min(j+1,column-1);t++){
if(block[k][t].isMine())
mineNumber++;
}
}
block[i][j].setIsOpen(false);
block[i][j].setIsMark(false);
block[i][j].setName(""+mineNumber);
block[i][j].setAroundMineNumber(mineNumber);
}
}
}
}
} 展开
2个回答
展开全部
// 引入相关的包
import java.awt.*;
import java.awt.event.*;
// 定义一个类
public class Exam5_23
{
// 定义主方法
public static void main(String args[])
{
// 实例化一个文件对话框,(就是类似记事本中,文件->打开的那种样子的)
myFileDialog mfd=new myFileDialog();
}
}
// 定义文件对话框控件
class myFileDialog extends Frame implements ActionListener
{
// 声明三个变量
FileDialog filedia1,filedia2,filedia3;
// 声明菜单工具栏
MenuBar mbr;
// 菜单
Menu menu1;
// 菜单元素
MenuItem itm1,itm2,itm3;
// 构造函数
myFileDialog()
{
// 调用父类构造函数
super("带文件对话框的练习窗口");
// 设置宽高
setSize(300,200);
// 设置可见性
setVisible(true);
// 像控件中添加元素,也即是想菜单栏中添加实际的菜单项
mbr=new MenuBar();menu1=new Menu("文件");
itm1=new MenuItem("保存文件");
itm2=new MenuItem("打开文件");
itm3=new MenuItem("关闭文件");
// 添加事件监听
itm1.addActionListener(this);
itm2.addActionListener(this);
itm3.addActionListener(this);
// 添加菜单项
menu1.add(itm1);menu1.add(itm2);menu1.add(itm3);
mbr.add(menu1);setMenuBar(mbr);
// 实例化FileDialog对象
filedia1=new FileDialog(this,"保存文件对话框",FileDialog.SAVE);
filedia1.setVisible(false);
filedia2=new FileDialog(this,"打开文件对话框",FileDialog.SAVE);
filedia2.setVisible(false);
filedia3=new FileDialog(this,"退出",FileDialog.SAVE);
filedia3.setVisible(false);
// 添加事件监听器
filedia1.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
});
filedia2.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
});
filedia3.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
});
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==itm1)
filedia1.setVisible(true);
else if(e.getSource()==itm2)
filedia2.setVisible(true);
else if(e.getSource()==itm3)
filedia3.setVisible(false);
System.exit(0);
}
}
import java.awt.*;
import java.awt.event.*;
// 定义一个类
public class Exam5_23
{
// 定义主方法
public static void main(String args[])
{
// 实例化一个文件对话框,(就是类似记事本中,文件->打开的那种样子的)
myFileDialog mfd=new myFileDialog();
}
}
// 定义文件对话框控件
class myFileDialog extends Frame implements ActionListener
{
// 声明三个变量
FileDialog filedia1,filedia2,filedia3;
// 声明菜单工具栏
MenuBar mbr;
// 菜单
Menu menu1;
// 菜单元素
MenuItem itm1,itm2,itm3;
// 构造函数
myFileDialog()
{
// 调用父类构造函数
super("带文件对话框的练习窗口");
// 设置宽高
setSize(300,200);
// 设置可见性
setVisible(true);
// 像控件中添加元素,也即是想菜单栏中添加实际的菜单项
mbr=new MenuBar();menu1=new Menu("文件");
itm1=new MenuItem("保存文件");
itm2=new MenuItem("打开文件");
itm3=new MenuItem("关闭文件");
// 添加事件监听
itm1.addActionListener(this);
itm2.addActionListener(this);
itm3.addActionListener(this);
// 添加菜单项
menu1.add(itm1);menu1.add(itm2);menu1.add(itm3);
mbr.add(menu1);setMenuBar(mbr);
// 实例化FileDialog对象
filedia1=new FileDialog(this,"保存文件对话框",FileDialog.SAVE);
filedia1.setVisible(false);
filedia2=new FileDialog(this,"打开文件对话框",FileDialog.SAVE);
filedia2.setVisible(false);
filedia3=new FileDialog(this,"退出",FileDialog.SAVE);
filedia3.setVisible(false);
// 添加事件监听器
filedia1.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
});
filedia2.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
});
filedia3.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
});
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==itm1)
filedia1.setVisible(true);
else if(e.getSource()==itm2)
filedia2.setVisible(true);
else if(e.getSource()==itm3)
filedia3.setVisible(false);
System.exit(0);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询