基於java實現停車場管理系統
阿新 • • 發佈:2020-01-07
本文例項為大家分享了java停車場管理系統的具體程式碼,供大家參考,具體內容如下
WorkFram.java
package com.parking; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; /* * WotkFram.java * * Created on 2008年9月2日,下午7:57 */ /** * * @author cheng */ public class WorkFram extends JFrame { /** * */ private static final long serialVersionUID = 1L; /** * @param args the command line arguments */ // 變數宣告 - 不進行修改//GEN-BEGIN:variables private JButton jbtnEnter; private JButton jbtnRefrush; private JTextArea jtexInfor; public int m_areaCount; //停車區個數 public int[] m_nos; //每個停車區的車位數 public int[] m_apare; //每個停車區的空閒車位數 // 變數宣告結束//GEN-END:variables //int m_areaCount; /** Creates new form WotkFram */ public WorkFram(InitFrame frm) { this.m_areaCount = frm.m_Area.length; this.m_apare = new int[m_areaCount]; this.m_nos = new int[m_areaCount]; for(int i = 0; i < m_areaCount; i++){ this.m_apare[i] = frm.m_Area[i]; this.m_nos[i] = frm.m_Area[i]; } 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. */ // <editor-fold defaultstate="collapsed" desc=" 生成的程式碼 ">//GEN-BEGIN:initComponents private void initComponents() { jbtnEnter = new JButton(); jbtnRefrush = new JButton(); jtexInfor = new JTextArea("停車場初始化結果:\n" + getStopStatus()); jtexInfor.setEnabled(false); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setTitle("\u505c\u8f66\u573a\u6a21\u62df"); jbtnEnter.setText("\u8fdb\u5165\u505c\u8f66\u573a"); jbtnRefrush.setText("重新整理"); jbtnEnter.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jbtnEnterActionPerformed(evt); } }); jbtnRefrush.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jbtnRefrushActionPerformed(evt); } }); GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(GroupLayout.Alignment.TRAILING,layout.createSequentialGroup() .addContainerGap(159,Short.MAX_VALUE) .addComponent(jtexInfor) .addComponent(jbtnRefrush) .addComponent(jbtnEnter) .addGap(128,128,128)) ); layout.setVerticalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(GroupLayout.Alignment.TRAILING,layout.createSequentialGroup() .addContainerGap(204,Short.MAX_VALUE) .addComponent(jtexInfor) .addComponent(jbtnRefrush) .addComponent(jbtnEnter) .addGap(73,73,73)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jbtnEnterActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jbtnEnterActionPerformed // TODO 將在此處新增您的處理程式碼: Thread thr = new carThread(this); thr.run(); }//GEN-LAST:event_jbtnEnterActionPerformed private void jbtnRefrushActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jbtnEnterActionPerformed // TODO 將在此處新增您的處理程式碼: this.jtexInfor.setText("停車場當前車區車位狀況統計:\n" + getStopStatus()); }//GEN-LAST:event_jbtnEnterActionPerformed public String getStopStatus() { String str = ""; for (int i = 0; i < m_areaCount; i++) { if (m_apare[i] > 0) { str += " " + (i + 1) + " 區總車位:" + m_nos[i] + "\t當前空閒車位 " + m_apare[i] + " 個\n"; } else { str += " " + (i + 1) + " 區總車位:" + m_nos[i] + "\t當前區無空閒車位\n"; } } return str; } public void setInfor(String infor) { this.jtexInfor.setText(infor); } }
InitFrame.java
package com.parking; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.*; /* * InitFrame.java * * Created on 2008年9月2日,下午7:36 */ /** * * @author cheng */ public class InitFrame extends JFrame { // 變數宣告 - 不進行修改 //GEN-BEGIN:variables /** * */ private static final long serialVersionUID = 1L; private JButton jButton1; private JLabel jLabel1; private JLabel jLabel2; private JLabel jLabel3; private JSpinner jSpinnerStopArea; private JButton jbtnCancel; private JButton jbtnOK; public JButton jbtnStopCount; private JTextField jtxtCarCount; private JTextField jtxtStopCount; public int m_Area[]; SpinnerNumberModel mdl; // 變數宣告結束//GEN-END:variables /** Creates new form InitFrame */ public InitFrame() { initComponents(); mdl = new SpinnerNumberModel(); this.jSpinnerStopArea.setModel(mdl); } /** 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. */ // <editor-fold defaultstate="collapsed" desc=" 生成的程式碼 ">//GEN-BEGIN:initComponents private void initComponents() { jLabel1 = new JLabel(); jtxtStopCount = new JTextField(); jbtnStopCount = new JButton(); jLabel2 = new JLabel(); jSpinnerStopArea = new JSpinner(); jLabel3 = new JLabel(); jtxtCarCount = new JTextField(); jButton1 = new JButton(); jbtnOK = new JButton(); jbtnCancel = new JButton(); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); setTitle("\u505c\u8f66\u573a\u521d\u59cb\u5316"); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { formWindowClosing(evt); } }); jLabel1.setText("\u505c\u8f66\u533a\u57df\u4e2a\u6570\uff1a"); jbtnStopCount.setText("\u8f93\u5165\u505c\u533a\u4e2a\u6570"); jbtnStopCount.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jbtnStopCountActionPerformed(evt); } }); jLabel2.setText("\u505c\u8f66\u533a\u53f7\uff1a"); jSpinnerStopArea.setEnabled(false); jLabel3.setText("\u505c\u8f66\u4f4d\u4e2a\u6570\uff1a"); jtxtCarCount.setEnabled(false); jButton1.setText("\u8f93\u5165\u505c\u533a\u8f66\u4f4d\u4e2a\u6570"); jButton1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jButton1ActionPerformed(evt); } }); jbtnOK.setText("\u786e\u5b9a"); jbtnOK.setEnabled(false); jbtnOK.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jbtnOKActionPerformed(evt); } }); jbtnCancel.setText("\u53d6\u6d88"); jbtnCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jbtnCancelActionPerformed(evt); } }); GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jSpinnerStopArea,GroupLayout.PREFERRED_SIZE,37,GroupLayout.PREFERRED_SIZE) .addGap(14,14,14) .addComponent(jLabel3,81,GroupLayout.PREFERRED_SIZE) .addGap(13,13,13) .addComponent(jtxtCarCount,117,GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1) .addGap(24,24,24) .addComponent(jtxtStopCount,99,GroupLayout.PREFERRED_SIZE) .addGap(25,25,25) .addComponent(jbtnStopCount)))) .addGroup(layout.createSequentialGroup() .addGap(29,29,29) .addComponent(jButton1,GroupLayout.DEFAULT_SIZE,137,Short.MAX_VALUE) .addGap(22,22,22) .addComponent(jbtnOK,65,Short.MAX_VALUE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jbtnCancel,66,GroupLayout.PREFERRED_SIZE) .addGap(23,23,23))) .addGap(51,51,51)) ); layout.setVerticalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(30,30,30) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(jtxtStopCount,GroupLayout.PREFERRED_SIZE) .addComponent(jbtnStopCount)) .addGap(27,27,27) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING) .addComponent(jLabel2) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jSpinnerStopArea,15,GroupLayout.PREFERRED_SIZE) .addComponent(jLabel3,GroupLayout.PREFERRED_SIZE) .addComponent(jtxtCarCount,GroupLayout.PREFERRED_SIZE))) .addGap(76,76,76) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jButton1) .addComponent(jbtnOK) .addComponent(jbtnCancel)) .addContainerGap(100,Short.MAX_VALUE)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jbtnCancelActionPerformed(ActionEvent evt) {// GEN-FIRST:event_jbtnCancelActionPerformed // TODO 將在此處新增您的處理程式碼: JOptionPane.showMessageDialog(null,"您沒有初始化,無法執行"); System.exit(-1); }// GEN-LAST:event_jbtnCancelActionPerformed private void jbtnOKActionPerformed(ActionEvent evt) {// GEN-FIRST:event_jbtnOKActionPerformed // TODO 將在此處新增您的處理程式碼: this.setVisible(false); this.removeNotify(); WorkFram frm = new WorkFram(this); // setValue(frm); frm.setVisible(true); }// GEN-LAST:event_jbtnOKActionPerformed private void formWindowClosing(WindowEvent evt) {// GEN-FIRST:event_formWindowClosing // TODO 將在此處新增您的處理程式碼: JOptionPane.showMessageDialog(null,"您沒有初始化,無法執行"); System.exit(-1); }// GEN-LAST:event_formWindowClosing private void jButton1ActionPerformed(ActionEvent evt) {// GEN-FIRST:event_jButton1ActionPerformed // TODO 將在此處新增您的處理程式碼: boolean b = true; int n = ((Integer) mdl.getValue()).intValue() - 1; this.m_Area[n] = Integer.parseInt(this.jtxtCarCount.getText()); for (int i = 0; i < m_Area.length; i++) { if (m_Area[i] <= 0) { b = false; } } try { mdl.setValue(mdl.getNextValue()); this.jtxtCarCount.setText(""); this.jtxtCarCount.setFocusable(true); } catch (Exception e) { } if (b) this.jbtnOK.setEnabled(true); }// GEN-LAST:event_jButton1ActionPerformed private void jbtnStopCountActionPerformed(ActionEvent evt) {// GEN-FIRST:event_jbtnStopCountActionPerformed // TODO 將在此處新增您的處理程式碼: String s = this.jtxtStopCount.getText(); int i = Integer.parseInt(s); m_Area = new int[i]; for (i = 0; i < m_Area.length; i++) { this.m_Area[i] = -1;// Integer.parseInt } this.jSpinnerStopArea.setEnabled(true); this.jtxtCarCount.setEnabled(true); mdl.setMinimum(new Integer(1)); mdl.setMaximum(new Integer(m_Area.length)); mdl.setValue(new Integer(1)); }// GEN-LAST:event_jbtnStopCountActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new InitFrame().setVisible(true); } }); } /* public void setValue(WorkFram frm) { frm.m_areaCount = this.m_Area.length; frm.m_apare = new int[frm.m_areaCount]; frm.m_nos = new int[frm.m_areaCount]; for(int i = 0; i < frm.m_areaCount; i++){ frm.m_apare[i] = this.m_Area[i]; frm.m_nos[i] = this.m_Area[i]; } } */ }
carThread.java
package com.parking; /* * carThread.java * * Created on 2008年9月2日,下午9:02 * * To change this template,choose Tools | Template Manager * and open the template in the editor. */ /** * * @author cheng */ public class carThread extends Thread { private WorkFram frm; /** Creates a new instance of carThread */ public carThread(WorkFram frm) { this.frm = frm; } public void run() { new carJFrame(frm).setVisible(true); } }
carJFrame.java
package com.parking; /* * carJFrame.java * * Created on 2008年9月2日,下午9:01 */ /** * * @author cheng */ import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class carJFrame extends JFrame { /** * */ private static final long serialVersionUID = 1L; /** * @param args the command line arguments */ // 變數宣告 - 不進行修改//GEN-BEGIN:variables private JButton jbtnEnterStop; private JButton jbtnLeftArea; private JButton jbtnLeftStop; private JButton jbtnLookUpArea; private JButton jbtnLookupPosition; private WorkFram mainFram; private int chooseArea; // 變數宣告結束//GEN-END:variables /** Creates new form carJFrame */ public carJFrame(WorkFram frm) { initComponents(); mainFram = frm; } /**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. */ // <editor-fold defaultstate="collapsed" desc=" 生成的程式碼 ">//GEN-BEGIN:initComponents private void initComponents() { jbtnEnterStop = new JButton(); jbtnLookUpArea = new JButton(); jbtnLookupPosition = new JButton(); jbtnLeftArea = new JButton(); jbtnLeftStop = new JButton(); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); setTitle("\u505c\u8f66\u573a\u64cd\u4f5c"); jbtnEnterStop.setText("\u8fdb\u5165\u505c\u8f66\u573a"); jbtnEnterStop.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jbtnEnterStopActionPerformed(evt); } }); jbtnLookUpArea.setText("\u5bfb\u627e\u505c\u8f66\u533a"); jbtnLookUpArea.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jbtnLookUpAreaActionPerformed(evt); } }); jbtnLookupPosition.setText("\u5bfb\u627e\u505c\u8f66\u4f4d"); jbtnLookupPosition.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jbtnLookupPositionActionPerformed(evt); } }); jbtnLeftArea.setText("\u79bb\u5f00\u505c\u8f66\u533a"); jbtnLeftArea.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jbtnLeftAreaActionPerformed(evt); } }); jbtnLeftStop.setText("\u79bb\u5f00\u505c\u8f66\u573a"); jbtnLeftStop.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jbtnLeftStopActionPerformed(evt); } }); jbtnEnterStop.setEnabled(true); jbtnLookUpArea.setEnabled(false); jbtnLookupPosition.setEnabled(false); jbtnLeftArea.setEnabled(false); jbtnLeftStop.setEnabled(false); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { formWindowClosing(evt); } }); GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(102,102,102) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(jbtnLeftStop) .addComponent(jbtnLeftArea) .addComponent(jbtnLookupPosition) .addComponent(jbtnLookUpArea) .addComponent(jbtnEnterStop)) .addContainerGap(205,Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(56,56,56) .addComponent(jbtnEnterStop) .addGap(20,20,20) .addComponent(jbtnLookUpArea) .addGap(22,22) .addComponent(jbtnLookupPosition) .addGap(24,24) .addComponent(jbtnLeftArea) .addGap(19,19,19) .addComponent(jbtnLeftStop) .addContainerGap(44,Short.MAX_VALUE)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jbtnLeftStopActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jbtnLeftStopActionPerformed // TODO 將在此處新增您的處理程式碼: //離開停車場,交存車卡 JOptionPane.showMessageDialog(null,"停車卡收回,再見!"); /* jbtnEnterStop.setEnabled(true); jbtnLookUpArea.setEnabled(false); jbtnLookupPosition.setEnabled(false); jbtnLeftArea.setEnabled(false); jbtnLeftStop.setEnabled(false); */ this.setVisible(false); this.removeNotify(); }//GEN-LAST:event_jbtnLeftStopActionPerformed private void jbtnLeftAreaActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jbtnLeftAreaActionPerformed // TODO 將在此處新增您的處理程式碼: //離開停車區 int confirm = JOptionPane.showConfirmDialog(null,"確定要離開 " + chooseArea + " 號停車區?","離開停車區",JOptionPane.YES_NO_OPTION); if (confirm == JOptionPane.YES_OPTION) { mainFram.m_apare[chooseArea - 1]++; // mainFram.setInfor(mainFram.getStopStatus()); jbtnLeftArea.setEnabled(false); jbtnLookUpArea.setEnabled(true); jbtnLeftStop.setEnabled(true); } else if (confirm == JOptionPane.NO_OPTION) { JOptionPane.showMessageDialog(null,"您已放棄了離開該車區!"); jbtnLookUpArea.setEnabled(true); } }//GEN-LAST:event_jbtnLeftAreaActionPerformed private void jbtnLookupPositionActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jbtnLookupPositionActionPerformed // TODO 將在此處新增您的處理程式碼: //進入停車區,尋找停車位 int confirm = JOptionPane.showConfirmDialog(null,"您已經選擇了" + chooseArea + " 號停車區," + "確定要進入該停車區?","進行停車區尋找車位",JOptionPane.YES_NO_OPTION); if (confirm == JOptionPane.YES_OPTION) { mainFram.m_apare[chooseArea - 1]--; // mainFram.setInfor(mainFram.getStopStatus()); jbtnLookUpArea.setEnabled(false); jbtnLookupPosition.setEnabled(false); jbtnLeftArea.setEnabled(true); jbtnLeftStop.setEnabled(false); } else if (confirm == JOptionPane.NO_OPTION) { JOptionPane.showMessageDialog(null,"您已放棄了進入該車區!"); jbtnLookUpArea.setEnabled(true); jbtnLookupPosition.setEnabled(false); } }//GEN-LAST:event_jbtnLookupPositionActionPerformed private void jbtnLookUpAreaActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jbtnLookUpAreaActionPerformed // TODO 將在此處新增您的處理程式碼: //進入停車場,尋找停車區 ImageIcon icon = new ImageIcon("test.gif"); int[] freeArea = getFreeArea(); Object[] freeAreas = new Object[freeArea.length]; for (int i = 0; i < freeArea.length; i++) { freeAreas[i] = freeArea[i]; } Integer choose = (Integer)JOptionPane.showInputDialog(null,"當前停車場狀況: \n" + mainFram.getStopStatus() + "\n請選擇一個空閒車區:","當前可先空閒車區: ",JOptionPane.PLAIN_MESSAGE,icon,freeAreas,(Integer)freeAreas[0]); if (choose != null) { JOptionPane.showMessageDialog(null,"您選擇了進入" + choose.intValue() + "車區"); chooseArea = choose.intValue(); jbtnLookUpArea.setEnabled(false); jbtnLookupPosition.setEnabled(true); } else { JOptionPane.showMessageDialog(null,"您沒有選擇車區!"); } }//GEN-LAST:event_jbtnLookUpAreaActionPerformed private void jbtnEnterStopActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jbtnEnterStopActionPerformed // TODO 將在此處新增您的處理程式碼: //領卡,進入停車場 boolean isFull = true; for (int i = 0; i < mainFram.m_areaCount; i++) { if (mainFram.m_apare[i] > 0) { isFull = false; } } if (isFull) { JOptionPane.showMessageDialog(null,"當前車場無空閒車區,請稍後再試!"); } else { jbtnEnterStop.setEnabled(false); jbtnLookUpArea.setEnabled(true); jbtnLookupPosition.setEnabled(false); jbtnLeftArea.setEnabled(false); jbtnLeftStop.setEnabled(false); JOptionPane.showMessageDialog(null,"成功領取停車卡,請進去車場尋找停車區位!"); } }//GEN-LAST:event_jbtnEnterStopActionPerformed private void formWindowClosing(WindowEvent evt) {// GEN-FIRST:event_formWindowClosing // TODO 將在此處新增您的處理程式碼: int confirm = JOptionPane.showConfirmDialog(null,"確定退出?","退出停車區",JOptionPane.YES_NO_OPTION); if (confirm == JOptionPane.YES_OPTION) { if (chooseArea > 0) { mainFram.m_apare[chooseArea - 1]--; } this.setVisible(false); this.removeNotify(); } else { this.setVisible(true); } }// GEN-LAST:event_formWindowClosing public int[] getFreeArea() { int count = 0; for (int i = 0; i < mainFram.m_areaCount; i++) { if (mainFram.m_apare[i] > 0) { count++; } } int[] freeArea = new int[count]; for (int i = 0,j = 0; i < mainFram.m_areaCount; i++) { if (mainFram.m_apare[i] > 0) { freeArea[j++] = i + 1; } } return freeArea; } }
原始碼下載:java停車場管理系統
更多學習資料請關注專題《管理系統開發》。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。