📄 chessframe.java
字号:
package chess;
/**
* <p>Title:5chess </p>
* <p>Description: </p>
* <p>Copyright: seaboy.ping@263.net Copyright (c) 2002</p>
* <p>Company: </p>
* @author chenxiaoping
* @version 1.0
*/
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class ChessFrame extends JFrame implements ActionListener {
private String[] strsize={"20x15","30x20","40x30"};
private String[] strmode={"人机对弈","人人对弈"};
public static boolean iscomputer=true,checkcomputer=true;
private int width,height;
private ChessModel cm;
private MainPanel mp;
public ChessFrame() {
this.setTitle("5chess");
cm=new ChessModel(1);
mp=new MainPanel(cm);
Container con=this.getContentPane();
con.add(mp,"Center");
this.setResizable(false);
this.addWindowListener(new nt());
MapSize(20,15);
JMenuBar mbar = new JMenuBar();
this.setJMenuBar(mbar);
JMenu gameMenu = new JMenu("游戏");
mbar.add(makeMenu(gameMenu, new Object[] {
"开局", "棋盘","模式", null, "退出"
}, this));
JMenu lookMenu =new JMenu("视图");
mbar.add(makeMenu(lookMenu,new Object[] {
"Metal","Motif","Windows"
},this));
JMenu helpMenu = new JMenu("帮助");
mbar.add(makeMenu(helpMenu, new Object[] {
"关于"
}, this));
}
public JMenu makeMenu(Object parent, Object items[], Object target)
{
JMenu m = null;
if(parent instanceof JMenu)
m = (JMenu)parent;
else
if(parent instanceof String)
m = new JMenu((String)parent);
else
return null;
for(int i = 0; i < items.length; i++)
if(items[i] == null)
m.addSeparator();
else if(items[i] == "棋盘")
{
JMenu jm = new JMenu("棋盘");
ButtonGroup group=new ButtonGroup();
JRadioButtonMenuItem rmenu;
for (int j=0;j<strsize.length;j++){
rmenu=makeRadioButtonMenuItem(strsize[j],target);
if (j==0)
rmenu.setSelected(true);
jm.add(rmenu);
group.add(rmenu);
}
m.add(jm);
}
else if(items[i] == "模式")
{
JMenu jm = new JMenu("模式");
ButtonGroup group=new ButtonGroup();
JRadioButtonMenuItem rmenu;
for (int h=0;h<strmode.length;h++){
rmenu=makeRadioButtonMenuItem(strmode[h],target);
if(h==0)
rmenu.setSelected(true);
jm.add(rmenu);
group.add(rmenu);
}
m.add(jm);
}
else
m.add(makeMenuItem(items[i], target));
return m;
}
public JMenuItem makeMenuItem(Object item, Object target)
{
JMenuItem r = null;
if(item instanceof String)
r = new JMenuItem((String)item);
else
if(item instanceof JMenuItem)
r = (JMenuItem)item;
else
return null;
if(target instanceof ActionListener)
r.addActionListener((ActionListener)target);
return r;
}
public JRadioButtonMenuItem makeRadioButtonMenuItem(Object item, Object target)
{
JRadioButtonMenuItem r = null;
if(item instanceof String)
r = new JRadioButtonMenuItem((String)item);
else
if(item instanceof JRadioButtonMenuItem)
r = (JRadioButtonMenuItem)item;
else
return null;
if(target instanceof ActionListener)
r.addActionListener((ActionListener)target);
return r;
}
public void MapSize(int w,int h)
{
setSize(w * 20+50 , h * 20+100 );
if(this.checkcomputer)
this.iscomputer=true;
else
this.iscomputer=false;
mp.setModel(cm);
mp.repaint();
}
public boolean getiscomputer(){
return this.iscomputer;
}
public void restart()
{
int degree = cm.getDegree();
if(degree <= 3 && degree >= 1)
{
cm = new ChessModel(degree);
MapSize(cm.getWidth(),cm.getHeight());
} else
{
System.out.println("\u81EA\u5B9A\u4E49");
}
}
public void actionPerformed(ActionEvent e){
String arg=e.getActionCommand();
try{
if (arg.equals("Windows"))
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
else if(arg.equals("Motif"))
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
else
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel" ); SwingUtilities.updateComponentTreeUI(this);
}
catch(Exception ee){}
if(arg.equals("20x15"))
{
this.width=20;
this.height=15;
cm=new ChessModel(1);
MapSize(this.width,this.height);
SwingUtilities.updateComponentTreeUI(this);
}
if(arg.equals("30x20"))
{
this.width=30;
this.height=20;
cm=new ChessModel(2);
MapSize(this.width,this.height);
SwingUtilities.updateComponentTreeUI(this);
}
if(arg.equals("40x30"))
{
this.width=40;
this.height=30;
cm=new ChessModel(3);
MapSize(this.width,this.height);
SwingUtilities.updateComponentTreeUI(this);
}
if(arg.equals("人机对弈"))
{
this.checkcomputer=true;
this.iscomputer=true;
cm=new ChessModel(cm.getDegree());
MapSize(cm.getWidth(),cm.getHeight());
SwingUtilities.updateComponentTreeUI(this);
}
if(arg.equals("人人对弈"))
{
this.checkcomputer=false;
this.iscomputer=false;
cm=new ChessModel(cm.getDegree());
MapSize(cm.getWidth(),cm.getHeight());
SwingUtilities.updateComponentTreeUI(this);
}
if(arg.equals("开局"))
{
restart();
}
if(arg.equals("关于"))
JOptionPane.showMessageDialog(this, "版本:1.0\n作者:seaboy.ping@263.net", "关于", 0);
if(arg.equals("退出"))
System.exit(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -