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

📄 queenframe.java

📁 运行环境: JDK1.4以上 程序编写软件:JCreator Application1.java为主类
💻 JAVA
字号:

import java.awt.Graphics;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Dimension;
import java.awt.event.*;
import javax.swing.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.*;
import java.awt.Font;
import java.awt.Image;

public class QueenFrame extends JFrame {
    JPanel contentPane;
    SortFrame sortframe=new SortFrame();
    Cartoon cartoon;
    JPanel2 qpanel=new JPanel2();
    BorderLayout borderLayout1 = new BorderLayout();
    JMenuBar jMenuBar1 = new JMenuBar();
    JMenu jMenuFile = new JMenu();
    JMenuItem jMenuFileExit = new JMenuItem();
    JMenu jMenu1 = new JMenu();
    JMenuItem jMenuItem1 = new JMenuItem();
    JMenuItem jMenuItem2 = new JMenuItem();
    /**********************************************/
    JButton okbutton=new JButton("确定" );
    JButton startbutton=new JButton("暂停" );
    JButton restartbutton=new JButton("重头开始" );
    JButton forthbutton=new JButton("单步前进" );
    JButton backbutton=new JButton("单步后退" );
    JSlider sliderMin=new JSlider(SwingConstants.HORIZONTAL,1,100,1);
    JTextField field = new JTextField("1", 10);
    int sli;
    int slidIn=0,slidDe,cq=1;
    public QueenFrame() {

        okbutton.setFont(new Font("Timesroman",Font.BOLD,10));
        cartoon=new Cartoon(qpanel);
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(borderLayout1);
        setSize(new Dimension(400, 300));
        setTitle("Frame Title");
        jMenuFile.setText("File");
        jMenuFileExit.setText("Exit");
        jMenuFileExit.addActionListener(new QueenFrame_jMenuFileExit_ActionAdapter(this));
        jMenu1.setText("算法演示");
        jMenuItem1.setText("快速排序");
        jMenuItem1.addActionListener(new QueenFrame_jMenuItem1_actionAdapter(this));
        jMenuItem2.setText("八皇后演示");
        jMenuItem2.addActionListener(new QueenFrame_jMenuItem2_actionAdapter(this));
        jMenuBar1.add(jMenuFile);
        jMenuBar1.add(jMenu1);
        jMenuFile.add(jMenuFileExit);
        jMenu1.add(jMenuItem1);
        jMenu1.add(jMenuItem2);
        setJMenuBar(jMenuBar1);
    }

    /**
     * File | Exit action performed.
     *
     * @param actionEvent ActionEvent
     */
    void jMenuFileExit_actionPerformed(ActionEvent actionEvent) {
        System.exit(0);
    }

    public void jMenuItem2_actionPerformed(ActionEvent e) {
         cartPopupFrame();   //动画窗口
         qpanel.creatQ(1);
         qpanel.FanNum(1);
         cartoon.playAnimation();
    }
    public void cartPopupFrame(){
         JFrame popupFrame=new JFrame();
         JPanel buttonJPanel=new JPanel(new FlowLayout() );
         popupFrame.setSize(600,700);
         qpanel.setSize(500,500);
         popupFrame.getContentPane().setLayout(new BorderLayout());
         popupFrame.getContentPane().add(qpanel,BorderLayout.CENTER);
         popupFrame.getContentPane().add(buttonJPanel,BorderLayout.SOUTH);
         popupFrame.setTitle("仿真开始");
         popupFrame.setVisible(true);
         //cartoon.playAnimation();
         buttonJPanel.add(sliderMin);
                 buttonJPanel.add(field);
                 buttonJPanel.add(okbutton);
          buttonJPanel.add(startbutton);
          buttonJPanel.add(restartbutton);
          buttonJPanel.add(forthbutton);
          buttonJPanel.add(backbutton);
 /************************************************/
           okbutton.addActionListener(new java.awt.event.ActionListener(){
            public void actionPerformed(ActionEvent ev){
                                     cq=(int)(Double.parseDouble(field.getText()));
                                 qpanel.creatQ(cq);
                                 qpanel.FanNum(1);
                                 qpanel.fulldraw();
                     cartoon.playAnimation();

              }
           });

          backbutton.addActionListener(new java.awt.event.ActionListener(){
            public void actionPerformed(ActionEvent ev){

                   cartoon.stopAnimation();
                                qpanel.backDraw();
              }
           });
         forthbutton.addActionListener(new java.awt.event.ActionListener(){
            public void actionPerformed(ActionEvent ev){

                   cartoon.stopAnimation();
                                qpanel.repaint();
              }
           });

//startbutton为可变按钮,当按钮按下就会变,初始的为暂停
          restartbutton.addActionListener(new java.awt.event.ActionListener(){
            public void actionPerformed(ActionEvent ev){
                                 qpanel.creatQ(cq);
                                 qpanel.FanNum(1);
                                 qpanel.fulldraw();
                    cartoon.playAnimation();
                    startbutton.setEnabled(true);
                    startbutton.setText("暂停");          //点了从头开始后开始按钮变为暂停

              }
           });


          startbutton.addActionListener(new java.awt.event.ActionListener(){
            public void actionPerformed(ActionEvent ev){
                    String label = ev.getActionCommand();
                    if(label.equals("开始") ){

                            cartoon.restart();
                            }
                            startbutton.setText("暂停");
               restartbutton.setEnabled(true);

             if(label.equals("暂停") ){
                    startbutton.setText("开始");
                    cartoon.stopAnimation();
                     }
             }
           });

         sliderMin.setValue(1);
         sliderMin.setMajorTickSpacing(10);
         sliderMin.setPaintTicks(true);
         Dimension dim = new Dimension(72,10);
         sliderMin.setPreferredSize(dim);
         sliderMin.addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent ev){
                        startbutton.setEnabled(false);
                        sli= sliderMin.getValue();
                        cartoon.slideControl();
                        System.out.println("slide======"+sli);
                                cartoon.drawqueen(sli-slidIn);
                                slidIn=sli;
        }
      });


        }
    public void jMenuItem1_actionPerformed(ActionEvent e) {
        sortframe.setVisible(true);
    }




}



class QueenFrame_jMenuItem2_actionAdapter implements ActionListener {
    private QueenFrame adaptee;
    QueenFrame_jMenuItem2_actionAdapter(QueenFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jMenuItem2_actionPerformed(e);
    }
}


class QueenFrame_jMenuItem1_actionAdapter implements ActionListener {
    private QueenFrame adaptee;
    QueenFrame_jMenuItem1_actionAdapter(QueenFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jMenuItem1_actionPerformed(e);
    }
}


class QueenFrame_jMenuFileExit_ActionAdapter implements ActionListener {
    QueenFrame adaptee;

    QueenFrame_jMenuFileExit_ActionAdapter(QueenFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent actionEvent) {
        adaptee.jMenuFileExit_actionPerformed(actionEvent);
    }
}

⌨️ 快捷键说明

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