?? 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 + -