⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chess.java

📁 这是关于java编程的一本书书的源代码 一共有15章
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.LinkedList;
public class Chess extends JFrame implements ActionListener
{
  ChessBoard board=null;
  Demon demon=null;
  MakeChessManual record=null;
  Container con=null;
  JMenuBar bar;
  JMenu fileMenu;
  JMenuItem 制作棋谱,保存棋谱,演示棋谱;
  JFileChooser fileChooser=null;
  LinkedList 棋谱=null;
  public Chess()
   { 
      bar=new JMenuBar();
      fileMenu=new JMenu("中国象棋");
      制作棋谱=new JMenuItem("制作棋谱");
      保存棋谱=new JMenuItem("保存棋谱");
      演示棋谱=new JMenuItem("演示棋谱");
      fileMenu.add(制作棋谱);
      fileMenu.add(保存棋谱);
      fileMenu.add(演示棋谱);
      bar.add(fileMenu);
      setJMenuBar(bar);
      setTitle(制作棋谱.getText());
      制作棋谱.addActionListener(this);
      保存棋谱.addActionListener(this);
      演示棋谱.addActionListener(this);
      board=new ChessBoard(45,45,9,10);
      record=board.record;
      con=getContentPane();
      JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,board,record);
      split.setDividerSize(5);
      split.setDividerLocation(460);
      con.add(split,BorderLayout.CENTER); 
      addWindowListener(new WindowAdapter()
                 { public void windowClosing(WindowEvent e)
                     { System.exit(0);
      	             }
                 });
      setVisible(true);
      setBounds(60,20,670,540);
      fileChooser=new JFileChooser();
      con.validate();
      validate();
   }
  public void actionPerformed(ActionEvent e)
   { 
     if(e.getSource()==制作棋谱) 
       {
         con.removeAll();
          保存棋谱.setEnabled(true);
         this.setTitle(制作棋谱.getText());
         board=new ChessBoard(45,45,9,10);
         record=board.record;
         JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,board,record);
         split.setDividerSize(5);
         split.setDividerLocation(460);
         con.add(split,BorderLayout.CENTER); 
         validate();
       }   
     if(e.getSource()==保存棋谱) 
       { 
         int state=fileChooser.showSaveDialog(null);
         File saveFile =fileChooser.getSelectedFile();
          if(saveFile!=null&&state==JFileChooser.APPROVE_OPTION)
               {try
                   {
                    FileOutputStream outOne=new FileOutputStream(saveFile);
                    ObjectOutputStream outTwo=new ObjectOutputStream(outOne);
                    outTwo.writeObject(record.获取棋谱()) ;
                    outOne.close();
                    outTwo.close();
                   }
                catch(IOException event)
                   {
                   } 
               }
       }
     if(e.getSource()==演示棋谱) 
       {         
           con.removeAll();
           con.repaint();
           con.validate(); 
           validate();
         保存棋谱.setEnabled(false);
         
         int state=fileChooser.showOpenDialog(null);
         File openFile =fileChooser.getSelectedFile();
          if(openFile!=null&&state==JFileChooser.APPROVE_OPTION)
               {try
                   {
                    FileInputStream inOne=new FileInputStream(openFile);
                    ObjectInputStream inTwo=new ObjectInputStream(inOne);
                    棋谱=(LinkedList)inTwo.readObject() ;
                    inOne.close();
                    inTwo.close();
                    ChessBoard board=new ChessBoard(45,45,9,10);
                    demon=new Demon(board);
                    demon.set棋谱(棋谱);
                    con.add(demon,BorderLayout.CENTER);
                    con.validate(); 
                    validate();
                    this.setTitle(演示棋谱.getText()+":"+openFile); 
                   }
                catch(Exception event)
                   {
                      JLabel label=new JLabel("不是棋谱文件");
                      label.setFont(new Font("隶书",Font.BOLD,60));
                      label.setForeground(Color.red); 
                      label.setHorizontalAlignment(SwingConstants.CENTER);
                      con.add(label,BorderLayout.CENTER);
                      con.validate(); 
                      this.setTitle("没有打开棋谱"); 
                      validate();
                   } 
               }
           else
              {
                JLabel label=new JLabel("没有打开棋谱文件呢");
                label.setFont(new Font("隶书",Font.BOLD,50));
                label.setForeground(Color.pink); 
                label.setHorizontalAlignment(SwingConstants.CENTER);
                con.add(label,BorderLayout.CENTER);
                con.validate(); 
                this.setTitle("没有打开棋谱文件呢"); 
                validate();  
              }
       }
   }
  public static void main(String args[])
   {
      new Chess();
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -