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

📄 wanderer.java

📁 用java实现随机漫步问题的分析.详细内容见说明文档.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * WanderThread.java  Beta 1.0 Created on 2008年4月9日, 下午8:02 * * Copyright 2007 Grassoft. All rights reserved. *  */package wanderer;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.text.*;import javax.swing.table.*;import java.io.*;import java.lang.System;/** * * 程序主类,实现主面板的加载实现 */public class Wanderer extends JFrame {        private int Widt , Heig ;    private int Times ;    public static int Expr  = 1;    private boolean canshow ;//标记可否显示分布图    public static ImageIcon icon ;    private DefaultTableModel AnaTableModel ;    private DefaultTableModel StaTableModel ;    private String columnNames1[] = {"漫游序号","步数","初始位置","结束位置","耗时"};    private String columnNames2[] = {"实验序号","漫游次数","棋盘大小","平均步数","平均耗时"};    public Wanderer() {                initComponents();            }        //该方法读取设定的地图长、宽及漫游次数,返回是否正确取值。    private boolean getCondition() {                Widt = Integer.parseInt((WidtField.getText().isEmpty() ? "0" : WidtField.getText()));        Heig = Integer.parseInt((HeigField.getText().isEmpty() ? "0" : HeigField.getText()));        if (Widt < 2 || Widt > 600) {            ShowWFrame("请输入正确的长度!");            return false;        } else if (Heig < 2 || Heig > 600) {            ShowWFrame("请输入正确的宽度!");            return false;        }        if (TimesSelect1.isSelected()) {            Times = 1;        } else if (TimesSelect2.isSelected()) {            Times = 10;        } else if (TimesSelect3.isSelected()) {            Times = 100;        } else if (TimesSelect4.isSelected()) {            Times = Integer.parseInt((TimesField.getText().isEmpty() ? "1" : TimesField.getText()));            if (Times < 1) {                ShowWFrame("请输入正确的次数!");                return false;            }        }        return true;    }        //此方法实现警告窗口的加载    private void ShowWFrame(String s){        WarningFrame wf = new WarningFrame();        wf.setWords(s);        setLocat(wf);        wf.setVisible(true);    }    //清空表格    public static void CleanTable(DefaultTableModel Table){                int row = Table.getRowCount()-1;        if (row >= 0)         for(int i=row;i>=0;--i){            Table.removeRow(i);            Table.setRowCount(i);        }      }        //设置窗体UI布局    public static void setUI(){            try {            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());        } catch (Exception e) {            e.printStackTrace();        }    }        //设置窗口位置    public static void setLocat(JFrame f){        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize() ;        Dimension frameSize = f.getSize();        f.setLocation((int)(screenSize.width-frameSize.width)/2, (int)(screenSize.height-frameSize.height)/2);    }        // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents    private void initComponents() {        TimesSelectGroup = new javax.swing.ButtonGroup();        jPanel1 = new javax.swing.JPanel();        jTabbedPane1 = new javax.swing.JTabbedPane();        jScrollPane1 = new javax.swing.JScrollPane();        icon = new ImageIcon(getClass().getResource("/wanderer/icon/bug_icon.gif"));        AnaTable = new javax.swing.JTable(){            public boolean isCellEditable(int rowindex,int colindex){                return false;            }        }        ;        jScrollPane2 = new javax.swing.JScrollPane();        StaTable = new javax.swing.JTable(){            public   boolean   isCellEditable(int   rowindex,int   colindex){                return   false;            }        }        ;        jPanel3 = new javax.swing.JPanel();        CleanButton = new javax.swing.JButton();        StartButton = new javax.swing.JButton();        ShowpicButton = new javax.swing.JButton();        jPanel4 = new javax.swing.JPanel();        TimesSelect1 = new javax.swing.JRadioButton();        TimesSelect2 = new javax.swing.JRadioButton();        TimesSelect3 = new javax.swing.JRadioButton();        HeigField = new javax.swing.JTextField();        jLabel2 = new javax.swing.JLabel();        jLabel1 = new javax.swing.JLabel();        WidtField = new javax.swing.JTextField();        TimesField = new javax.swing.JTextField();        TimesSelect4 = new javax.swing.JRadioButton();        jLabel3 = new javax.swing.JLabel();        jPanel5 = new javax.swing.JPanel();        jLabel4 = new javax.swing.JLabel();        versionInfo = new javax.swing.JLabel();        jLabel5 = new javax.swing.JLabel();        jMenuBar1 = new javax.swing.JMenuBar();        jMenu1 = new javax.swing.JMenu();        StartMenuItem = new javax.swing.JMenuItem();        CleanMenuItem = new javax.swing.JMenuItem();        jSeparator1 = new javax.swing.JSeparator();        jMenuItem1 = new javax.swing.JMenuItem();        jSeparator2 = new javax.swing.JSeparator();        ExitMenuItem = new javax.swing.JMenuItem();        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);        setTitle("Wanderer Analyzer");        setBackground(new java.awt.Color(255, 255, 255));        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));        setIconImage(icon.getImage());        setResizable(false);        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());        AnaTableModel = new DefaultTableModel(columnNames1, 0) ;        AnaTable.setModel(AnaTableModel        );        AnaTable.getTableHeader().setReorderingAllowed(false);        jScrollPane1.setViewportView(AnaTable);        jTabbedPane1.addTab("分析", jScrollPane1);        StaTableModel = new DefaultTableModel(columnNames2, 0) ;        StaTable.setModel(StaTableModel);        StaTable.getTableHeader().setReorderingAllowed(false);        jScrollPane2.setViewportView(StaTable);        jTabbedPane1.addTab("统计", jScrollPane2);        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);        jPanel1.setLayout(jPanel1Layout);        jPanel1Layout.setHorizontalGroup(            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel1Layout.createSequentialGroup()                .addContainerGap()                .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 485, Short.MAX_VALUE)                .addContainerGap())        );        jPanel1Layout.setVerticalGroup(            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel1Layout.createSequentialGroup()                .addContainerGap()                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 218, javax.swing.GroupLayout.PREFERRED_SIZE)                .addContainerGap(14, Short.MAX_VALUE))        );        jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());        CleanButton.setText("数据清空");        CleanButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                CleanButtonActionPerformed(evt);            }        });        StartButton.setText("开始漫步");        StartButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                StartButtonActionPerformed(evt);            }        });        ShowpicButton.setText("图形显示");        ShowpicButton.setEnabled(false);        ShowpicButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                ShowpicButtonActionPerformed(evt);            }        });        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);        jPanel3.setLayout(jPanel3Layout);        jPanel3Layout.setHorizontalGroup(            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()                .addContainerGap()                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)                    .addComponent(CleanButton)                    .addComponent(StartButton, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)                    .addComponent(ShowpicButton))                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))        );        jPanel3Layout.setVerticalGroup(            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel3Layout.createSequentialGroup()                .addContainerGap()                .addComponent(StartButton)                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addComponent(CleanButton)                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addComponent(ShowpicButton)                .addContainerGap(21, Short.MAX_VALUE))        );        jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());        TimesSelectGroup.add(TimesSelect1);        TimesSelect1.setSelected(true);        TimesSelect1.setText("漫游1次");        TimesSelectGroup.add(TimesSelect2);        TimesSelect2.setText("漫游10次");        TimesSelectGroup.add(TimesSelect3);        TimesSelect3.setText("漫游100次");        HeigField.setDocument(new NumberLenghtLimited(4));        jLabel2.setText("棋盘高(2-600):");        jLabel1.setText("棋盘宽(2-600):");        WidtField.setDocument(new NumberLenghtLimited(4));        TimesField.setDocument(new NumberLenghtLimited(3));        TimesSelectGroup.add(TimesSelect4);        TimesSelect4.setText("自定义");        jLabel3.setText("自定义漫游次数:");        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);

⌨️ 快捷键说明

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