2011-05-01 124 views
-1

我有一個在NetBeans中創建的項目,當我編譯它創建的類文件是好的。但是如果我編譯後有一個名爲operator.java的文件,我得到了operator.class,操作符$ 1.class,操作符$ 2.class等。是否有任何特殊的原因呢?你能解釋一下爲什麼會發生?Netbeans懷疑編譯

package admin; 
import forms_helper.global_variables; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import utilities.mysql_query; 
import utilities.variables; 
public class stock_adjust extends javax.swing.JFrame {` 

    List<String> list = new ArrayList<String>(); 
    List<String> list_id = new ArrayList<String>(); 
    List<String> list_quantity = new ArrayList<String>(); 

    /** Creates new form stock_adjust */ 
    public stock_adjust() { 
     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. 
    */ 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jLabel1 = new javax.swing.JLabel(); 
     jTextField1 = new javax.swing.JTextField(); 
     jScrollPane1 = new javax.swing.JScrollPane(); 
     products = new javax.swing.JList(); 
     jLayeredPane1 = new javax.swing.JLayeredPane(); 
     jLabel2 = new javax.swing.JLabel(); 
     product_name = new javax.swing.JTextField(); 
     qty = new javax.swing.JTextField(); 
     jLabel4 = new javax.swing.JLabel(); 
     cancel = new javax.swing.JButton(); 
     save = new javax.swing.JButton(); 
     jButton3 = new javax.swing.JButton(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 
     setTitle("Stock Adjust"); 
     setLocationByPlatform(true); 
     setResizable(false); 

     jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 
     jLabel1.setText("Search:"); 

     jTextField1.addCaretListener(new javax.swing.event.CaretListener() { 
      public void caretUpdate(javax.swing.event.CaretEvent evt) { 
       jTextField1CaretUpdate(evt); 
      } 
     }); 

     products.addMouseListener(new java.awt.event.MouseAdapter() { 
      public void mouseClicked(java.awt.event.MouseEvent evt) { 
       productsMouseClicked(evt); 
      } 
     }); 
     products.addListSelectionListener(new javax.swing.event.ListSelectionListener() { 
      public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 
       productsValueChanged(evt); 
      } 
     }); 
     jScrollPane1.setViewportView(products); 

     jLayeredPane1.setBorder(javax.swing.BorderFactory.createTitledBorder("Adjust")); 

     jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 
     jLabel2.setText("Product Name:"); 
     jLabel2.setBounds(10, 30, 80, 20); 
     jLayeredPane1.add(jLabel2, javax.swing.JLayeredPane.DEFAULT_LAYER); 
     product_name.setBounds(100, 30, 240, -1); 
     jLayeredPane1.add(product_name, javax.swing.JLayeredPane.DEFAULT_LAYER); 
     qty.setBounds(100, 60, 110, -1); 
     jLayeredPane1.add(qty, javax.swing.JLayeredPane.DEFAULT_LAYER); 

     jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 
     jLabel4.setText("Quantity:"); 
     jLabel4.setBounds(10, 60, 80, 20); 
     jLayeredPane1.add(jLabel4, javax.swing.JLayeredPane.DEFAULT_LAYER); 

     cancel.setText("Cancel"); 
     cancel.setBounds(220, 110, -1, 30); 
     jLayeredPane1.add(cancel, javax.swing.JLayeredPane.DEFAULT_LAYER); 

     save.setText("Save"); 
     save.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       saveActionPerformed(evt); 
      } 
     }); 
     save.setBounds(50, 110, 73, 30); 
     jLayeredPane1.add(save, javax.swing.JLayeredPane.DEFAULT_LAYER); 

     jButton3.setText("Keyboard"); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() 
         .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
         .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE)) 
        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() 
         .addGap(16, 16, 16) 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
          .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE) 
          .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 356, javax.swing.GroupLayout.PREFERRED_SIZE)))) 
       .addGap(18, 18, 18)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(24, 24, 24) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE) 
        .addComponent(jButton3)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 210, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addGap(18, 18, 18) 
       .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addGap(19, 19, 19)) 
     ); 

     pack(); 
    }// </editor-fold>       

    private void jTextField1CaretUpdate(javax.swing.event.CaretEvent evt) {           
     try { 
      String sql = "SELECT * FROM pos_products WHERE " 
        + "company_id='" + global_variables.company_id + "' AND " 
        + "shop_type='" + global_variables.shop_type + "' AND " 
        + "product_name LIKE '%" + jTextField1.getText() + "%' OR " 
        + "barcode LIKE '%" + jTextField1.getText() + "%'"; 

      list.removeAll(list); 
      list_id.removeAll(list_id); 
      list_quantity.removeAll(list_quantity); 
      ResultSet rs = mysql_query.execute_mysql(variables.con.conn, sql); 
      products.removeAll(); 
      while (rs.next()) { 
       list.add(rs.getString("product_name")); 
       list_id.add(rs.getString("p_id")); 
       list_quantity.add(rs.getString("available_stock")); 
      } 
      products.setListData(list.toArray(new String[list.size()])); 
     } catch (SQLException ex) { 
      Logger.getLogger(stock_adjust.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    }          

    private void productsValueChanged(javax.swing.event.ListSelectionEvent evt) {          
    }          

    private void productsMouseClicked(java.awt.event.MouseEvent evt) {          
     product_name.setText(list.get(products.getSelectedIndex())); 
     qty.setText(list_quantity.get(products.getSelectedIndex())); 
    }          

    private void saveActionPerformed(java.awt.event.ActionEvent evt) {          
     String sql = "UPDATE pos_products SET " 
       + "available_stock='" + qty.getText() + "' WHERE " 
       + "company_id='" + global_variables.company_id + "' AND " 
       + "p_id='" + list_id.get(products.getSelectedIndex()) + "'"; 
     mysql_query.update_mysql(variables.con.conn, sql); 
    }          

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new stock_adjust().setVisible(true); 
      } 
     }); 
    } 
    // Variables declaration - do not modify      
    private javax.swing.JButton cancel; 
    private javax.swing.JButton jButton3; 
    private javax.swing.JLabel jLabel1; 
    private javax.swing.JLabel jLabel2; 
    private javax.swing.JLabel jLabel4; 
    private javax.swing.JLayeredPane jLayeredPane1; 
    private javax.swing.JScrollPane jScrollPane1; 
    private javax.swing.JTextField jTextField1; 
    private javax.swing.JTextField product_name; 
    private javax.swing.JList products; 
    private javax.swing.JTextField qty; 
    private javax.swing.JButton save; }` 

在上面的代碼中,我得到了這樣的6個類。所以你選擇負責製作這個PLZ的行..我在這段代碼中沒有使用任何內部類。我不確定Enum的概念,所以如果你能幫我解決問題,我可以從那裏開始學習。

回答

3

這不是netbeans特定的。

附加的類文件是用於內部operator.java聲明爲匿名類字節碼,或者如果operator是聲明每個實例方法定義的枚舉,則這些是由編譯器通過這樣的附加gnerated類實現爲好。

編輯:

這是一個匿名的類定義:

new javax.swing.event.CaretListener() { 
     public void caretUpdate(javax.swing.event.CaretEvent evt) { 
      jTextField1CaretUpdate(evt); 
     } 
    } 

你有幾個那些在你的代碼(MoustListener,ActionListener的,等等) - 這是一個常見的成語來聲明監聽器這樣的內聯實現。

+0

你能解釋一下嗎? ?檢查我的編輯.. – Deepak 2011-05-01 13:52:36

+0

@Deepak:添加說明 – 2011-05-01 14:01:21

+0

+1不錯的東西,尤其是編輯。 – Boro 2011-05-01 14:08:43

3

如果你的操作符類有內部類或枚舉,那麼在編譯之後,你會看到額外的類文件。


更新:

已使用匿名類的聽衆和他們都爲一個名字算$ 1.calss創建,..所以,你是因爲你使用的是看到這麼多類文件聽衆的匿名類。

....... 
products.addMouseListener(new java.awt.event.MouseAdapter() { 
      public void mouseClicked(java.awt.event.MouseEvent evt) { 
       productsMouseClicked(evt); 
      } 
     }); 
products.addListSelectionListener(new javax.swing.event.ListSelectionListener() { 
      public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 
       productsValueChanged(evt); 
      } 
     }); 
....... 
+1

加速+1,Harry Joy。 – duffymo 2011-05-01 13:42:03

+0

檢查我的編輯傢伙!你們總是反應迅速,這就是我愛的原因:) – Deepak 2011-05-01 13:52:16

+0

對不起,迪帕克,太多的閱讀。 – duffymo 2011-05-01 13:54:21

1

operator.java裏面必須有內部類。

+1

擊敗你10秒........ :-p – 2011-05-01 13:38:49