資源簡介
這是一個數獨游戲的源代碼已經相應的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
- 上一篇:稅收計算系統-jsp
- 下一篇:利用jxls操作excel模板文件
評論
共有 條評論