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

📄 puzzlegame.java

📁 《Java课程设计》第二版
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.swing.filechooser.*;
public class PuzzleGame extends JFrame implements ActionListener{
    PuzzlePad puzzlePad;
    JMenuBar bar;
    JMenu gradeMenu,choiceImage;
    JMenuItem oneGrade,twoGrade,newImage,defaultImage;
    JRadioButton digitPlay,imagePlay;
    ButtonGroup group=null;
    JButton startButton;
    Image image;
    Toolkit tool;
    public PuzzleGame(){
        tool=getToolkit();
        bar=new JMenuBar();
        gradeMenu=new JMenu("选择级别");
        choiceImage=new JMenu("选择图像");
        oneGrade=new JMenuItem("初级");
        twoGrade=new JMenuItem("高级");
        newImage=new JMenuItem("选择一幅新图像");
        defaultImage=new JMenuItem("使用默认图像"); 
        gradeMenu.add(oneGrade);
        gradeMenu.add(twoGrade);
        choiceImage.add(newImage);
        choiceImage.add(defaultImage);
        bar.add(gradeMenu);
        bar.add(choiceImage);
        setJMenuBar(bar);
        oneGrade.addActionListener(this);
        twoGrade.addActionListener(this);
        newImage.addActionListener(this);
        defaultImage.addActionListener(this);
        startButton=new JButton("开始");
        startButton.addActionListener(this);
        group=new ButtonGroup();
        digitPlay=new JRadioButton("数字玩法",true);
        imagePlay=new JRadioButton("图像玩法",false);
        group.add(digitPlay);
        group.add(imagePlay);
        puzzlePad=new PuzzlePad();
        puzzlePad.setGrade(1);
        puzzlePad.setIsDigitPlay();                
        add(puzzlePad,BorderLayout.CENTER);
        JPanel pNorth=new JPanel();
        pNorth.add(digitPlay);
        pNorth.add(imagePlay); 
        pNorth.add(startButton);
        pNorth.add(new JLabel("如果图像不能立刻显示,请再单击一次按扭"));
        add(pNorth,BorderLayout.NORTH);
        add(puzzlePad.getHandleMove(),BorderLayout.SOUTH);
        validate();
        setVisible(true);
        setBounds(100,50,550,380);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        try{
             image=tool.createImage(new File("dog.jpg").toURI().toURL());
             puzzlePad.setImage(image);
        }
        catch(Exception exp){} 
  }
  public void actionPerformed(ActionEvent e){
       if(e.getSource()==startButton){
           if(digitPlay.isSelected()){
                puzzlePad.setIsDigitPlay();
           }
           else if(imagePlay.isSelected()){
              puzzlePad.setImage(image);
              puzzlePad.setIsImagePlay();
           }
       } 
       else if(e.getSource()==oneGrade){
           puzzlePad.setGrade(1);
       }
       else if(e.getSource()==twoGrade){
           puzzlePad.setGrade(2);
       }
       else if(e.getSource()==newImage){
          FileNameExtensionFilter filter = new FileNameExtensionFilter(
          "JPG & GIF Images", "jpg", "gif");
           JFileChooser chooser=new JFileChooser();
           chooser.setFileFilter(filter); 
           int state=chooser.showOpenDialog(null);
           File file=chooser.getSelectedFile();
           if(file!=null&&state==JFileChooser.APPROVE_OPTION){
              try{
               image=tool.createImage(file.toURI().toURL());
               puzzlePad.setImage(image);
              }
              catch(Exception exp){}  
           }
      }
      else if(e.getSource()==defaultImage){
          try{
                image=tool.createImage(new File("dog.jpg").toURI().toURL());
                puzzlePad.setImage(image);
              }
          catch(Exception exp){}  
     }
  }
  public  static void main(String args[]){
      new PuzzleGame();
  }  
}

⌨️ 快捷键说明

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