?? stockusefullifesearchframe.java
字號:
package stockmanageinterface;import java.awt.*;import java.awt.event.*;import javax.swing.event.*;import javax.swing.*;import java.util.*;import data.*;import maininterface.*;import user.*;import method.*;public class StockUsefulLifeSearchFrame extends JFrame implements ActionListener { JPanel contentPane; //創建標簽控件 JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); //創建按鈕控件 JButton jButton1 = new JButton(); //創建編輯框控件 JTextField jTextField1 = new JTextField(); JTextField jTextField2 = new JTextField(); //創建滾動框控件 JScrollPane jScrollPane1 = new JScrollPane(); //創建列表框數據類和列表框控件 DefaultListModel listData1 = new DefaultListModel(); //創建表格控件 JTable jTable1 = new JTable(); //創建表格模式類 StockManagementTableModel smTableModel = new StockManagementTableModel(); //創建標題數組 String[] colNames = {"商品條形碼", "倉庫", "進貨價", "數量", "金額", "有效期"}; //創建字體類 Font dialog13 = new java.awt.Font("Dialog", 0, 13); //聲明數據類 StockManagementData stockManagementData = null; //聲明用戶類 User user = null; //聲明主窗口類 StockManagementMainFrame stockManagementMainFrame = null; //創建庫存商品數組 String[][] stockGoodsArray = new String[0][6]; //創建帳套日期字符串 String ledgerDate = ""; //創建方法類 DataMethod dataMethod = new DataMethod(); public StockUsefulLifeSearchFrame(StockManagementMainFrame stockManagementMainFrame) { this.stockManagementMainFrame = stockManagementMainFrame; //取得主窗口的數據類 stockManagementData = stockManagementMainFrame.getStockManagementData(); //取得主窗口的用戶類 user = stockManagementMainFrame.getUser(); //取得主窗口的賬套日期 ledgerDate = stockManagementMainFrame.getLedgerDate(); //取得庫存模塊的用戶權限 int stockManageFunction = user.getStockManageFunction(); //檢查用戶權限 if ( (stockManageFunction & 512) != 512) { JOptionPane.showMessageDialog(null, user.getUserName() + "用戶不具有該權限."); System.exit(0); } //檢查賬套日期 if(ledgerDate.length() == 0){ JOptionPane.showMessageDialog(null, user.getUserName() + "請選擇賬套."); return; } try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(null); this.setSize(new Dimension(667, 375)); this.setTitle("商品有效期查詢窗口"); //設置標簽的屬性 jLabel1.setText("查詢日期"); jLabel1.setBounds(new Rectangle(27, 24, 78, 16)); jLabel2.setText("總金額"); jLabel2.setBounds(new Rectangle(490, 24, 76, 16)); //設置編輯框的屬性 jTextField1.setBounds(new Rectangle(101, 24, 114, 22)); jTextField2.setEditable(false); jTextField2.setBounds(new Rectangle(550, 24, 80, 22)); //設置按鈕的屬性 jButton1.setText("查詢"); jButton1.setActionCommand("search"); jButton1.setBounds(new Rectangle(244, 24, 63, 25)); //設置滾動框的屬性 jScrollPane1.setBounds(new Rectangle(27, 62, 603, 229)); jScrollPane1.getViewport().add(jTable1, null); //為面板加入各個控件 contentPane.add(jLabel1, null); contentPane.add(jLabel2, null); contentPane.add(jTextField1, null); contentPane.add(jTextField2, null); contentPane.add(jButton1, null); contentPane.add(jScrollPane1, null); //設置窗口類的字體和為按鈕加入動作接收器 setupFontAndListener(); } //設置窗口類的字體和為按鈕加入動作接收器的方法 public void setupFontAndListener(){ Component[] components = contentPane.getComponents(); //創建臨時按鈕控件 JButton tmpBtn = new JButton(); for(int i = 0; i < components.length; i++){ components[i].setFont(dialog13); if(components[i].getClass().getName().equals("javax.swing.JButton")){ tmpBtn = (JButton)components[i]; tmpBtn.addActionListener(this); } } } //退出方法 public void exit(){ //隱藏窗口 this.setVisible(false); //清空數組的內容 stockGoodsArray = new String[0][6]; //清空列表框的內容 listData1.clear(); //清空表格的內容 this.showTableData(stockGoodsArray); //清空編輯框的內容 jTextField1.setText(""); jTextField2.setText(""); } //設置用戶的方法 public void setUser(User user) { this.user = user; } //設置賬套的方法 public void setLedgerDate(String ledgerDate) { this.ledgerDate = ledgerDate; } protected void processWindowEvent(WindowEvent e) { if (e.getID() == WindowEvent.WINDOW_CLOSING) { exit(); } } //顯示表格內容的方法 public void showTableData(Object[][] detail){ //設置表格的標題 smTableModel.setColumnNames(colNames); //設置表格的數據 smTableModel.setData(detail); jTable1 = new JTable(smTableModel); //設置表格的字體 jTable1.setFont(dialog13); //將數據表格加入數據滾動框 jScrollPane1.getViewport().add(jTable1, null); //設置列的寬度 jTable1.getColumnModel().getColumn(0).setPreferredWidth(30); jTable1.getColumnModel().getColumn(1).setPreferredWidth(20); jTable1.getColumnModel().getColumn(2).setPreferredWidth(20); jTable1.getColumnModel().getColumn(3).setPreferredWidth(20); jTable1.getColumnModel().getColumn(4).setPreferredWidth(20); jTable1.getColumnModel().getColumn(5).setPreferredWidth(50); } //計算金額方法 public void recountGoodsAmount(){ double amount = 0; double total = 0; for(int i = 0; i < stockGoodsArray.length; i++){ //整理數據 stockGoodsArray[i][2] = String.valueOf(dataMethod.round(Double. parseDouble(stockGoodsArray[i][2]))); stockGoodsArray[i][4] = String.valueOf(dataMethod.round(Double. parseDouble(stockGoodsArray[i][4]))); //取得單個記錄金額 amount = Double.parseDouble(stockGoodsArray[i][4]); total += amount; } jTextField2.setText(String.valueOf(dataMethod.round(total))); } public void search(){ String searchValue = jTextField1.getText().trim(); if (searchValue.length() == 0) { JOptionPane.showMessageDialog(null, "請輸入查詢值"); return; } java.sql.Date date = dataMethod.transferShortDate(searchValue); if(date == null){ JOptionPane.showMessageDialog(null, "日期輸入錯誤,正確的日期格式是" + "yyyy-mm-dd(年-月-日),如2004-1-1"); return; } //查詢過期商品 stockGoodsArray = stockManagementData.getStockByUsefulLife(ledgerDate, searchValue, 2); //顯示表格數據 this.showTableData(stockGoodsArray); //顯示總金額 this.recountGoodsAmount(); } //單擊事件 public void actionPerformed(ActionEvent e) { //取得按鈕的動作字符串 String actionCommand = e.getActionCommand().trim(); if (actionCommand.equals("search")) { search(); } }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -