📄 frmmaze.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. *//* * frrmmaze.java * * Created on May 24, 2009, 6:35:01 PM */package maze;import java.awt.Graphics;import java.awt.GridLayout;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileWriter;import java.io.IOException;import java.util.Random;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JButton;import javax.swing.JFileChooser;import javax.swing.JOptionPane;import javax.swing.JPanel;/** * * @author James Bond 007 */public class frmmaze extends javax.swing.JFrame { private Maze maze = null; /** Creates new form frrmmaze */ public frmmaze() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { HeuGroup = new javax.swing.ButtonGroup(); MyDialog = new javax.swing.JDialog(); pnlMaze = new javax.swing.JPanel(); pnlToolbar = new javax.swing.JPanel(); btnSolve = new javax.swing.JButton(); jMenuBar1 = new javax.swing.JMenuBar(); mnuFile = new javax.swing.JMenu(); mnuNew = new javax.swing.JMenuItem(); mnuRanMaze = new javax.swing.JMenuItem(); mnuLoad = new javax.swing.JMenuItem(); mnuSave = new javax.swing.JMenuItem(); jSeparator1 = new javax.swing.JSeparator(); mnuExport = new javax.swing.JMenuItem(); jSeparator2 = new javax.swing.JSeparator(); mnuExit = new javax.swing.JMenuItem(); mnuEdit = new javax.swing.JMenu(); mnuMazeEdit = new javax.swing.JMenuItem(); mnuheuristics = new javax.swing.JMenu(); mnuEuclidean = new javax.swing.JRadioButtonMenuItem(); mnuManhattan = new javax.swing.JRadioButtonMenuItem(); mnuHelp = new javax.swing.JMenu(); mnuAbout = new javax.swing.JMenuItem(); javax.swing.GroupLayout MyDialogLayout = new javax.swing.GroupLayout(MyDialog.getContentPane()); MyDialog.getContentPane().setLayout(MyDialogLayout); MyDialogLayout.setHorizontalGroup( MyDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 400, Short.MAX_VALUE) ); MyDialogLayout.setVerticalGroup( MyDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 300, Short.MAX_VALUE) ); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("A* Maze solver "); pnlMaze.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true)); javax.swing.GroupLayout pnlMazeLayout = new javax.swing.GroupLayout(pnlMaze); pnlMaze.setLayout(pnlMazeLayout); pnlMazeLayout.setHorizontalGroup( pnlMazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 434, Short.MAX_VALUE) ); pnlMazeLayout.setVerticalGroup( pnlMazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 321, Short.MAX_VALUE) ); pnlToolbar.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true)); btnSolve.setText("Solve"); btnSolve.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnSolveActionPerformed(evt); } }); javax.swing.GroupLayout pnlToolbarLayout = new javax.swing.GroupLayout(pnlToolbar); pnlToolbar.setLayout(pnlToolbarLayout); pnlToolbarLayout.setHorizontalGroup( pnlToolbarLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlToolbarLayout.createSequentialGroup() .addContainerGap() .addComponent(btnSolve) .addContainerGap(365, Short.MAX_VALUE)) ); pnlToolbarLayout.setVerticalGroup( pnlToolbarLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlToolbarLayout.createSequentialGroup() .addContainerGap() .addComponent(btnSolve) .addContainerGap(9, Short.MAX_VALUE)) ); mnuFile.setText("File"); mnuNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, 0)); mnuNew.setText("Blank maze"); mnuNew.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnuNewActionPerformed(evt); } }); mnuFile.add(mnuNew); mnuRanMaze.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.CTRL_MASK)); mnuRanMaze.setText("Random maze"); mnuRanMaze.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnuRanMazeActionPerformed(evt); } }); mnuFile.add(mnuRanMaze); mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, 0)); mnuLoad.setText("Load maze"); mnuLoad.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnuLoadActionPerformed(evt); } }); mnuFile.add(mnuLoad); mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, 0)); mnuSave.setText("Save maze"); mnuSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnuSaveActionPerformed(evt); } }); mnuFile.add(mnuSave); mnuFile.add(jSeparator1); mnuExport.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, 0)); mnuExport.setText("Export to prolog"); mnuFile.add(mnuExport); mnuFile.add(jSeparator2); mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, 0)); mnuExit.setText("Exit"); mnuExit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnuExitActionPerformed(evt); } }); mnuFile.add(mnuExit); jMenuBar1.add(mnuFile); mnuEdit.setText("Edit"); mnuMazeEdit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, 0)); mnuMazeEdit.setText("Maze file"); mnuEdit.add(mnuMazeEdit); mnuheuristics.setText("Heuristics"); mnuEuclidean.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.CTRL_MASK)); HeuGroup.add(mnuEuclidean); mnuEuclidean.setText("Euclidean distance"); mnuEuclidean.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnuEuclideanActionPerformed(evt); } }); mnuheuristics.add(mnuEuclidean); mnuManhattan.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK)); HeuGroup.add(mnuManhattan); mnuManhattan.setSelected(true); mnuManhattan.setText("Manhattan distance"); mnuManhattan.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnuManhattanActionPerformed(evt); } }); mnuheuristics.add(mnuManhattan); mnuEdit.add(mnuheuristics); jMenuBar1.add(mnuEdit); mnuHelp.setText("Help"); mnuHelp.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnuHelpActionPerformed(evt); } }); mnuAbout.setText("About"); mnuAbout.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnuAboutActionPerformed(evt); } }); mnuHelp.add(mnuAbout); jMenuBar1.add(mnuHelp); setJMenuBar(jMenuBar1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(pnlToolbar, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlMaze, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -