• 大小: 11KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Java
  • 标签: 数独  java  GUI  界面  

资源简介

这是一个数独游戏的源代码已经相应的class文件。可以直接在运行。方便教学与研究

资源截图

代码片段和文件信息

import java.awt.*;
import java.awt.event.*;
import java.util.Random;

import javax.swing.*;

public class Shudu
{
Generator gen=new Generator();
static Grid g[]=new Grid[81];
final String help=“Made By Shi Xing“+‘\n‘+“操作方法:“+‘\n‘+“在start中选择相应难度开始;“+‘\n‘+“在空格处右键弹出下拉菜单“
+‘\n‘+“选择相应的数字后,在原来的空格点击左键“+‘\n‘+“填写完成后点击Check按钮“;
//菜单的构建
JMenuBar jmb=new JMenuBar();
JMenu start=new JMenu(“Start“);
JMenuItem check=new JMenuItem(“Check“);
JMenuItem nandu1=new JMenuItem(“难度 3“);
JMenuItem nandu2=new JMenuItem(“难度 4“);
JMenuItem nandu3=new JMenuItem(“难度 5“);
JMenuItem mhelp=new JMenuItem(“Help“);
Jframe frame=new Jframe(“数独游戏“);
class Grid
{
//有关元素
int x;
int y;
PopMenu pm;
JLabel cb;
final String chooser[]={“   ““1““2““3““4““5““6““7““8““9“};
int index; //所选的东西;
int editable;
//各种类定义
class PopMenu
{
JPopupMenu pop;
JRadioButtonMenuItem radio[];
ButtonGroup bg;
PopMenu(int a)
{
pop=new JPopupMenu();
RadioListener rl=new RadioListener();
bg=new ButtonGroup();
radio=new JRadioButtonMenuItem[10];
radio[0]=new JRadioButtonMenuItem(“ “);
radio[0].addActionListener(rl);
radio[0].setMnemonic(KeyEvent.VK_0);
radio[0].setEnabled(true);
bg.add(radio[0]);
pop.add(radio[0]);
for (int i=1; i<10 ; i++)
{
radio[i]=new JRadioButtonMenuItem(new Integer(i).toString());
radio[i].addActionListener(rl);
radio[i].setMnemonic(KeyEvent.VK_0+i);
bg.add(radio[i]);
pop.add(radio[i]);
}
radio[a].setSelected(true);
}

}
class RadioListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
for (int i=0; i<10 ; i++)
if (pm.radio[i].isSelected())
{
index=i; break;
}
System.out.println(index);
}
}
class MyListener extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
if (editable==1)
if (e.getButton()==MouseEvent.BUTTON3)
{
pm.pop.setLocation(e.getXOnScreen() e.getYOnScreen());
pm.pop.setVisible(true);
pm.pop.setEnabled(true);
}
else if (e.getButton()==MouseEvent.BUTTON1)
{
pm.pop.setVisible(false);
cb.setText(chooser[index]);
gen.ini[x][y]=index;


}
}
}

//各种方法
Grid(int a)
{
editable=1;
index=a;
cb=new JLabel(chooser[a]);
pm=new PopMenu(index);
MyListener l=new MyListener();
cb.addMouseListener(l);
cb.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(Color.black)BorderFactory.createEmptyBorder(10 10 10 10)));
cb.setBounds(1 1 1 1);
}
void set(int a)
{
index=a;
cb.setText(chooser[a]);
}
int get()
{
return index;
}
void seteditable(int a)
{
editable=a;
if (a==0)
cb.setForeground(Color.red);
if (a==1)
cb.setForeground(Color.black);
}
}
class CheckList

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2010-08-23 12:37  Shudu\
     文件         792  2010-08-22 23:05  Shudu\Shudu$CheckListener.class
     文件        1330  2010-08-22 23:05  Shudu\Shudu$Grid$MyListener.class
     文件        1430  2010-08-22 23:05  Shudu\Shudu$Grid$PopMenu.class
     文件         932  2010-08-22 23:05  Shudu\Shudu$Grid$RadioListener.class
     文件        1933  2010-08-22 23:05  Shudu\Shudu$Grid.class
     文件         834  2010-08-22 23:05  Shudu\Shudu$HelpListener.class
     文件         738  2010-08-22 23:05  Shudu\Shudu$NanduListener.class
     文件        4106  2010-08-22 23:05  Shudu\Shudu.class
     文件        9850  2010-08-22 23:01  Shudu\Shudu.java

评论

共有 条评论