📄 customerjdialog.java.svn-base
字号:
/* * CustomerJDialog.java * * Created on 2007年6月4日, 下午12:11 */package com.studio009.store.ui;import com.studio009.store.StoreApp;import com.studio009.store.entity.Customer;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 CustomerJDialog extends javax.swing.JDialog { /** Creates new form CustomerJDialog * @param parent 父窗口 * @param modal 模式 */ public CustomerJDialog(java.awt.Window parent, boolean modal) { super(parent, java.awt.Dialog.ModalityType.APPLICATION_MODAL); 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("\u5ba2\u6237\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() .addGap(26, 26, 26) .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)) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 517, Short.MAX_VALUE))) .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.PREFERRED_SIZE, 263, javax.swing.GroupLayout.PREFERRED_SIZE) .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]).getCustomerName() + "\""; } 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 Customer c = list.get(selected[i]); if (c.getSaleCollection() == null || c.getSaleCollection().isEmpty()){ em.remove(c); } else { JOptionPane.showMessageDialog(this, c.getCustomerName() + " 已经发生了业务,不能删除!"); } } try{ em.getTransaction().commit(); } catch (Exception e) { JOptionPane.showMessageDialog(this, "错误!"); em.getTransaction().rollback(); } em.getTransaction().begin(); updateTable();}//GEN-LAST:event_jButton3ActionPerformedprivate void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed CustomerEditer ce = new CustomerEditer(this, null, true); ce.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; } CustomerEditer ce = new CustomerEditer(this, (String)jTable1.getValueAt(jTable1.getSelectedRow(), 0), true); ce.setVisible(true); updateTable();}//GEN-LAST:event_jButton1ActionPerformed/** * 获取用来显示客户的表格模型 * @return 用来显示客户的表格模型 */private DefaultTableModel initialTableModel() { if (em != null) em.close(); em = StoreApp.getEntityManagerFactory().createEntityManager(); em.getTransaction().begin(); query = em.createQuery("SELECT o FROM Customer o"); list = query.getResultList(); Vector columnName=new Vector(); columnName.add("姓名"); columnName.add("电话"); columnName.add("地址"); columnName.add("备注 "); Vector content=new Vector(); for( Customer c : list) { Vector row = new Vector(); row.add(c.getCustomerName()); row.add(c.getCustomerPhone()); row.add(c.getCustomerAddress()); row.add(c.getCustomerNote()); content.add(row); } DefaultTableModel customerTableModel=new DefaultTableModel(content,columnName){ public boolean isCellEditable(int row, int col) { return false; } }; return customerTableModel; // return new DefaultTableModel(){ // public boolean isCellEditable(int row, int col) { // // return false; // } // };}/** * 更新表格 */private void updateTable(){ jTable1.setModel(initialTableModel());}/** * @param args the command line arguments */public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { CustomerJDialog dialog = new CustomerJDialog(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosed(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<Customer> list;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -