📄 wanderer.java
字号:
/* * 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 + -