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

📄 mainframe.java

📁 基本路径搜索之遇到障碍物问题 并且可以标记出所走路线
💻 JAVA
字号:
/*
 * MainFram.java
 *
 * Created on 2007年3月29日, 下午1:47
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package ailinesight;
import javax.swing.*;
import java.awt.*;
/**
 *
 * @author Administrator
 */
public class MainFrame extends javax.swing.JFrame implements java.awt.event.ActionListener{
    
    /** Creates a new instance of MainFram */
    private LineSight ls;
    private javax.swing.JPanel control;
    private javax.swing.JButton start;
    private javax.swing.JButton reset;
    private javax.swing.JButton change;
     private javax.swing.JButton paint;
    public MainFrame() {
        super("AI Line-Sight");
        control = new javax.swing.JPanel();
        start = new javax.swing.JButton("Start");
        reset = new javax.swing.JButton("Reset");
        change = new javax.swing.JButton("Change Way");
        paint = new javax.swing.JButton("Paint");
        control.add(paint);
        control.add(change);
        control.add(reset);
        control.add(start);
        control.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 255, 51), 1, true));
        start.addActionListener(this);
        reset.addActionListener(this);
        change.addActionListener(this);
        paint.addActionListener(this);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLayout(new BorderLayout());
        this.setSize(485,490);
        ls = new LineSight();
        this.add(ls,BorderLayout.CENTER);
        this.add(control, BorderLayout.SOUTH);
        
        text();
    }
    private Thread dodo = null;
    public void actionPerformed(java.awt.event.ActionEvent e){
        if(e.getSource().equals(start)){
            if(dodo==null){
                ls.clear(3,10);
                dodo = new Thread(){
                    public void run(){
                        ls.run();
                    }
                };
                dodo.start();
            }
        }
        else if(e.getSource().equals(change)){
            ls.WEIGHT = !ls.WEIGHT;
        }
        else if(e.getSource().equals(reset)){
            dodo = null;
            ls.clear(3,10);
        }
        else if(e.getSource().equals(paint)){
            ls.PAINT = !ls.PAINT;
        }
    }
    private void text(){
        /*for(int i=1;i<16;i++){
            ls.addBlackRect(15,i);
            ls.addBlackRect(i,15);
            ls.addBlackRect(1,i);
            ls.addBlackRect(i,1);
        }
        */
        ls.addBlackRect(16,13);
        ls.addBlackRect(15,13);
        ls.addBlackRect(15,14);
        ls.addBlackRect(15,15);
        ls.addBlackRect(15,16);
        ls.addBlackRect(15,17);
        ls.addBlackRect(15,18);
        ls.addBlackRect(17,19);
        ls.addBlackRect(16,19);
        ls.addBlackRect(15,19);
        ls.addBlackRect(15,20);
        ls.addBlackRect(15,21);
        ls.addBlackRect(17,20);
        ls.addBlackRect(14,14);
        
        ls.addController(3,10);
        ls.addGoal(20,20);
        //ls.addGoal(16,20);
    }
    public static void main(String[] args){
        try{
            javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
        }catch(Exception e){}
        MainFrame mf = new MainFrame();
        java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
        mf.setSize(600,600);
        Dimension screenSize = toolkit.getScreenSize();
        mf.setLocation(Math.abs(screenSize.width - mf.getWidth()) / 2,
                Math.abs(screenSize.height - mf.getHeight()) / 2);
        mf.setVisible(true);
    }
}

⌨️ 快捷键说明

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