goodsjdialog.java
来自「Store Manager」· Java 代码 · 共 287 行
JAVA
287 行
/* * GoodsJDialog.java * * Created on 2007年6月12日, 下午3:44 */package com.studio009.store.ui;import com.studio009.store.StoreApp;import com.studio009.store.entity.Customer;import com.studio009.store.entity.Goods;import com.studio009.store.ui.GoodsEditer;import java.util.List;import java.util.Vector;import javax.persistence.EntityManager;import javax.persistence.Query;import javax.swing.JOptionPane;import javax.swing.table.DefaultTableModel;/** * 商品操作对话框 * 列出所有的商品 * @author wangs */public class GoodsJDialog extends javax.swing.JDialog { /** Creates new form GoodsJDialog * @param parent 父窗口 * @param locks 锁定的商品 * @param modal 模式 */ public GoodsJDialog(java.awt.Window parent, Vector<String> locks, boolean modal) { super(parent, java.awt.Dialog.ModalityType.APPLICATION_MODAL); this.locks = locks; initComponents(); this.setLocationRelativeTo(parent); } /** 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=" Generated Code ">//GEN-BEGIN:initComponents private void initComponents() { jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("\u5546\u54c1\u7ba1\u7406"); jButton1.setText("\u7f16\u8f91"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setText("\u65b0\u5efa"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton3.setText("\u5220\u9664"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jButton4.setText("\u9000\u51fa"); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); jTable1.setModel(initialTableModel()); jScrollPane1.setViewportView(jTable1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 725, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGap(68, 68, 68) .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(27, 27, 27) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(26, 26, 26) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(26, 26, 26) .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 77, Short.MAX_VALUE) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 263, Short.MAX_VALUE) .addContainerGap()) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed this.dispose();}//GEN-LAST:event_jButton4ActionPerformedprivate void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed // delete a opeator if (jTable1.getSelectedRow() == -1) { JOptionPane.showMessageDialog(this, "请选择一件商品!", "错误", JOptionPane.ERROR_MESSAGE); return; } int [] selected = jTable1.getSelectedRows(); String Names = ""; for (int i = selected.length - 1; i>= 0; i--) { Names += " \"" + list.get(selected[i]).getGoodsName() + "\""; } int result = JOptionPane.showConfirmDialog(this, "确定要删除" + Names + " 吗?", "", JOptionPane.YES_NO_OPTION); if (result != JOptionPane.OK_OPTION) return; if (list.size() == 1) { JOptionPane.showMessageDialog(this, "不能删除,至少要保留一件商品!"); return; } for (int i = selected.length - 1; i >= 0; i--) { //System.out.println(list.get(selected[i]));if Goods g = list.get(selected[i]); if ((g.getStockItemCollection() == null || g.getStockItemCollection().isEmpty()) && (g.getStoregoodsCollection() == null || g.getStoregoodsCollection().isEmpty()) && (!checkLock(g.getGoodsID())) ){ em.remove(g); } else { JOptionPane.showMessageDialog(this, g.getGoodsName() + " 已经发生了业务,不能删除!"); } } try{ em.getTransaction().begin(); em.getTransaction().commit(); } catch (Exception e) { JOptionPane.showMessageDialog(this, "错误!"); em.getTransaction().rollback(); } updateTable();}//GEN-LAST:event_jButton3ActionPerformedprivate void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed new GoodsEditer(this, null, true).setVisible(true); updateTable();}//GEN-LAST:event_jButton2ActionPerformedprivate void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed if (jTable1.getSelectedRow() == -1) { JOptionPane.showMessageDialog(this, "请选择一件商品!", "错误", JOptionPane.ERROR_MESSAGE); return; } String goodID = list.get(jTable1.getSelectedRow()).getGoodsID(); if (checkLock(goodID)) { JOptionPane.showMessageDialog(this, goodID + " 已经发生了业务,不能删除!"); return; } new GoodsEditer(this, goodID, true).setVisible(true); updateTable();}//GEN-LAST:event_jButton1ActionPerformed/** * 获取用来显示商品的表格模型 * @return 显示商品的表格模型 */private DefaultTableModel initialTableModel() { //if (em != null) em.close(); em = StoreApp.getEntityManagerFactory().createEntityManager(); query = em.createQuery("SELECT o FROM Goods o"); list = query.getResultList(); Vector columnName=new Vector(); columnName.add("商品条形码"); columnName.add("分类"); columnName.add("商品名称"); columnName.add("标价"); columnName.add("单位"); columnName.add("规格"); columnName.add("颜色"); columnName.add("产地"); columnName.add("库存下限"); columnName.add("备注"); Vector content=new Vector(); for( Goods g : list) { Vector row = new Vector(); row.add(g.getGoodsID()); row.add(g.getGoodsCategoryID().getGoodsCategoryName()); row.add(g.getGoodsName()); row.add(String.format("%.2f",g.getPrice())); row.add(g.getUnit()); row.add(g.getSpec()); row.add(g.getColor()); row.add(g.getProducingArea()); row.add(g.getLowerLimit()); row.add(g.getGoodsNote()); content.add(row); } DefaultTableModel goodsTableModel=new DefaultTableModel(content,columnName){ public boolean isCellEditable(int row, int col) { return false; } }; return goodsTableModel;}/** * 更新表格 */private void updateTable(){ jTable1.setModel(initialTableModel());}/** * 检查商品是否被锁定 * @return 该商品锁定返回true, 否则返回false */private boolean checkLock(String goodsID) { if (locks == null) return false; for (String s : locks) { if (s.equals(goodsID)) { return true; } } return false;}/** * @param args the command line arguments */public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { Vector<String> l = new Vector<String>(); l.add("a"); l.add("b"); GoodsJDialog dialog = new GoodsJDialog(new javax.swing.JFrame(),l , true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } });} // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; // End of variables declaration//GEN-END:variables private EntityManager em; private Query query; private List<Goods> list; private Vector<String> locks;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?