-2

我需要在下面我使用过的代码中声明 pct 并从 netbeans 得到错误:

pct d = Percent.parsepct(discountpercentTextField.getText());

声明 pct 的确切代码是什么?另外,我在哪里声明这个?一开始?

这是完整的代码文件:

      /*
       * To change this template, choose Tools | Templates
       * and open the template in the editor.
       */

       package murach.forms;
import murach.business.InvoiceCalculations;
 import java.text.NumberFormat;


/**
 *
 * @author james
 */
 public class InvoiceForm extends javax.swing.JFrame {

/**
 * Creates new form InvoiceForm
 */
public InvoiceForm() {
    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() {

    messageLabe1 = new javax.swing.JLabel();
    messageLabe2 = new javax.swing.JLabel();
    messageLabe3 = new javax.swing.JLabel();
    messageLabe4 = new javax.swing.JLabel();
    messageLabe5 = new javax.swing.JLabel();
    customertypeTextField = new javax.swing.JTextField();
    subtotalTextField = new javax.swing.JTextField();
    discountpercentTextField = new javax.swing.JTextField();
    discountamountTextField = new javax.swing.JTextField();
    totalTextField = new javax.swing.JTextField();
    calculateButton = new javax.swing.JButton();
    exitButton = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("Invoice Total Calculator");

    messageLabe1.setText("Customer Type:");

    messageLabe2.setText("Subtotal:");

    messageLabe3.setText("Discount Percent:");

    messageLabe4.setText("Discount Amount:");

    messageLabe5.setText("Total:");

    customertypeTextField.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            customertypeTextFieldActionPerformed(evt);
        }
    });

    subtotalTextField.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            subtotalTextFieldActionPerformed(evt);
        }
    });

    discountpercentTextField.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            discountpercentTextFieldActionPerformed(evt);
        }
    });

    calculateButton.setMnemonic('c');
    calculateButton.setText("Calculate");
    calculateButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            calculateButtonActionPerformed(evt);
        }
    });

    exitButton.setMnemonic('x');
    exitButton.setText("Exit");
    exitButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            exitButtonActionPerformed(evt);
        }
    });

    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(layout.createSequentialGroup()
            .add(38, 38, 38)
            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(messageLabe1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(messageLabe2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(messageLabe3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 126, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(messageLabe4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 137, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(messageLabe5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                    .add(totalTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
                    .add(discountamountTextField))
                .add(org.jdesktop.layout.GroupLayout.TRAILING, discountpercentTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 144, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(customertypeTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(subtotalTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 144, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
            .addContainerGap(74, Short.MAX_VALUE))
        .add(layout.createSequentialGroup()
            .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .add(calculateButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 124, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(exitButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 77, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
            .add(43, 43, 43))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(layout.createSequentialGroup()
            .add(31, 31, 31)
            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(messageLabe1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(customertypeTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(messageLabe2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(subtotalTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .add(6, 6, 6)
            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(messageLabe3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(discountpercentTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .add(6, 6, 6)
            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(messageLabe4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(discountamountTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .add(6, 6, 6)
            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(messageLabe5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(totalTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .add(18, 18, 18)
            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(exitButton)
                .add(calculateButton))
            .addContainerGap(58, Short.MAX_VALUE))
    );

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

private void customertypeTextFieldActionPerformed(java.awt.event.ActionEvent evt) {                                                      
    // TODO add your handling code here:

}                                                     

private void subtotalTextFieldActionPerformed(java.awt.event.ActionEvent evt) {                                                  
    // TODO add your handling code here:

}                                                 

private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
       // TODO add your handling code here:
    System.exit(0);


}                                          
private boolean isValidData ()
{
    SwingValidator sv= new SwingValidator();
    return
      sv.isPresent(customertypeTextField, "Customer Type")&&
      sv.isPresent(subtotalTextField, "Subtotal")&&
      sv.isDouble(subtotalTextField, "Subtotal");      
}        


private void calculateButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
      // TODO add your handling code here:
   double c = Double.parseDouble(customertypeTextField.getText());
   double s = Double.parseDouble(subtotalTextField.getText());
   pct d = Percent.parsepct(discountpercentTextField.getText());
   double a = Double.parseDouble(discountamountTextField.getText());
   double total = InvoiceCalculations.calculateTotal(c, s, d);
   NumberFormat currency = NumberFormat.getCurrencyInstance();
   totalTextField.setText(currency.format(total));
}                                               

private void discountpercentTextFieldActionPerformed(java.awt.event.ActionEvent evt) {                                                         
    // TODO add your handling code here:

}                                                        

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(InvoiceForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(InvoiceForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(InvoiceForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(InvoiceForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            InvoiceForm frame  =new InvoiceForm();
            frame.setVisible (true);
            frame.setLocationRelativeTo(null);
        }
    });
}
// Variables declaration - do not modify                     
private javax.swing.JButton calculateButton;
private javax.swing.JTextField customertypeTextField;
private javax.swing.JTextField discountamountTextField;
private javax.swing.JTextField discountpercentTextField;
private javax.swing.JButton exitButton;
private javax.swing.JLabel messageLabe1;
private javax.swing.JLabel messageLabe2;
private javax.swing.JLabel messageLabe3;
private javax.swing.JLabel messageLabe4;
private javax.swing.JLabel messageLabe5;
private javax.swing.JTextField subtotalTextField;
private javax.swing.JTextField totalTextField;
// End of variables declaration                   
 }
4

3 回答 3

1

没有足够的信息给出明确的答案,但它看起来像是类parsepct的工厂方法Percent。如果这是真的,那么问题是您没有为变量声明使用正确的类型。正确的是:

Percent d = Percent.parsepct(discountpercentTextField.getText());

这声明了一个名为dtype的变量Percent,并立即为其分配工厂方法返回的值。

于 2012-09-26T19:47:06.533 回答
1

我会假设你想这样做:

Percent pct = Percent.parsepct(discountpercentTextField.getText());

但我会认真建议您参加一点 Java 速成课程。

于 2012-09-26T19:47:14.907 回答
0

如果您想声明某种原始类型的变量,那么您可能想查看本教程以了解如何在类中声明变量..

*注意: -pct不是有效的原始类型。所以,编译器无法理解它。

如果您要声明某个类的引用..那么您实际上需要使用名称定义某些类Percent..

编辑: -

看到你的代码后,看起来你实际上正在使用一些编译器不知道的其他类型。你应该有一个用 name 定义的类pct,告诉编译器这是我正在创建的。

   double s = Double.parseDouble(subtotalTextField.getText());
   pct d = Percent.parsepct(discountpercentTextField.getText());

就像类parseDouble中的静态方法Double返回类型一样double,您需要有一个Percent具有静态方法的类,该类parsepct()将返回您声明为pct..(我认为应该是Percent)的类型。

于 2012-09-26T19:48:05.083 回答