-2

商品の販売価格を表示する小売計算機を作成しようとしています。ユーザーは、テキスト ボックスに商品の元の価格を入力し、別のボックスに割引率を入力します。次に、ユーザーは計算ボタンをクリックして答えを取得します。私の問題は、プログラムに答えを計算させることができず、代わりに多くのエラーメッセージが表示されることです。いくつかの行にエラーしか表示されませんが、それらを修正する方法がわかりません。以下は私が持っているコードです:

import javax.swing.JOptionPane;

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

/**
 * 
 * @author Owner
 */
public class RetailCalcForm extends javax.swing.JFrame {

    private void close() {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    private static class number {

        public number() {
        }
    }

    private static class number2 {

        public number2() {
        }
    }

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

        itemNameText = new javax.swing.JTextField();
        originalPriceText = new javax.swing.JTextField();
        percentDiscountedText = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        calculateButton = new javax.swing.JButton();
        salesPriceLabel = new javax.swing.JLabel();
        exitButton = new javax.swing.JButton();
        javax.swing.JComboBox departmentBox = new javax.swing.JComboBox();
        jLabel4 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("Item Name");

        jLabel2.setText("Original Price");

        jLabel3.setText("% Discounted");

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

        salesPriceLabel.setText("Discounted Sales Price: ");

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

        departmentBox.setModel(new javax.swing.DefaultComboBoxModel(
                new String[] { "Electronics", "Toys", "Clothing", "Housewares",
                        "Garden" }));
        departmentBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                departmentBoxActionPerformed(evt);
            }
        });

        jLabel4.setText("Select Department");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
                getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(
                        layout.createSequentialGroup()
                                .addGap(28, 28, 2Cool

                                .addGroup(
                                        layout.createParallelGroup(
                                                javax.swing.GroupLayout.Alignment.LEADING)
                                                .addGroup(
                                                        layout.createSequentialGroup()
                                                                .addGroup(
                                                                        layout.createParallelGroup(
                                                                                javax.swing.GroupLayout.Alignment.LEADING)
                                                                                .addComponent(
                                                                                        jLabel2)
                                                                                .addComponent(
                                                                                        jLabel1))
                                                                .addContainerGap())
                                                .addGroup(
                                                        layout.createSequentialGroup()
                                                                .addGroup(
                                                                        layout.createParallelGroup(
                                                                                javax.swing.GroupLayout.Alignment.LEADING)
                                                                                .addComponent(
                                                                                        salesPriceLabel,
                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                        310,
                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                                .addGroup(
                                                                                        layout.createSequentialGroup()
                                                                                                .addGroup(
                                                                                                        layout.createParallelGroup(
                                                                                                                javax.swing.GroupLayout.Alignment.LEADING)
                                                                                                                .addComponent(
                                                                                                                        jLabel3)
                                                                                                                .addComponent(
                                                                                                                        jLabel4))
                                                                                                .addGap(26,
                                                                                                        26,
                                                                                                        26)
                                                                                                .addGroup(
                                                                                                        layout.createParallelGroup(
                                                                                                                javax.swing.GroupLayout.Alignment.LEADING)
                                                                                                                .addComponent(
                                                                                                                        percentDiscountedText,
                                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                                                        145,
                                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                                                                .addComponent(
                                                                                                                        departmentBox,
                                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                                                        105,
                                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                                                                .addGroup(
                                                                                                                        layout.createSequentialGroup()
                                                                                                                                .addGroup(
                                                                                                                                        layout.createParallelGroup(
                                                                                                                                                javax.swing.GroupLayout.Alignment.LEADING)
                                                                                                                                                .addComponent(
                                                                                                                                                        originalPriceText,
                                                                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                                                                                        145,
                                                                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                                                                                                .addComponent(
                                                                                                                                                        itemNameText,
                                                                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                                                                                        145,
                                                                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                                                                                                                .addPreferredGap(
                                                                                                                                        javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                                                                                                        59,
                                                                                                                                        Short.MAX_VALUE)
                                                                                                                                .addComponent(
                                                                                                                                        calculateButton)))))
                                                                .addGap(0, 33,
                                                                        33))))
                .addGroup(
                        layout.createSequentialGroup().addGap(228, 228, 228)
                                .addComponent(exitButton)
                                .addGap(0, 0, Short.MAX_VALUE)));
        layout.setVerticalGroup(layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(
                        layout.createSequentialGroup()
                                .addGap(69, 69, 69)
                                .addGroup(
                                        layout.createParallelGroup(
                                                javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addComponent(
                                                        departmentBox,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(jLabel4))
                                .addGap(35, 35, 35)
                                .addGroup(
                                        layout.createParallelGroup(
                                                javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addComponent(jLabel1)
                                                .addComponent(
                                                        itemNameText,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(37, 37, 37)
                                .addGroup(
                                        layout.createParallelGroup(
                                                javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(jLabel2)
                                                .addComponent(
                                                        originalPriceText,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(26, 26, 26)
                                .addGroup(
                                        layout.createParallelGroup(
                                                javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addComponent(
                                                        percentDiscountedText,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(jLabel3))
                                .addGap(35, 35, 35)
                                .addComponent(salesPriceLabel)
                                .addPreferredGap(
                                        javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                        44, Short.MAX_VALUE)
                                .addComponent(exitButton).addGap(26, 26, 26))
                .addGroup(
                        layout.createSequentialGroup()
                                .addGap(140, 140, 140)
                                .addComponent(calculateButton,
                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                        87,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addContainerGap()));

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

    private void calculateButtonActionPerformed(java.awt.event.ActionEvent evt) {
        int number1 = 0, number2 = 0;
        try (
            int = Integer.parseInt(
            this.originalPriceText.getText());
        catch (Excemption e) {
            JOptionPane.showMessageDialog(this, "Invalid Price Amount", "Error", JOptionPane.ERROR_MESSAGE);
            return;
        }
        try (
            int = Integer.parseInt(
            this.percentDiscountedText.getText());
        catch (Excemption e) {
            JOptionPane.showMessageDialog(this, "Invalid Discount Amount", "Error", JOptionPane.ERROR_MESSAGE);
            return;
        }
        int answer = number1 / number2;
        this.salesPriceLabel.setText("Discounted Sales Price: " / answer);
    }

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

    private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {
        System.exit(0);
        close();

    }

    /**
     * @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(RetailCalcForm.class.getName())
                    .log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(RetailCalcForm.class.getName())
                    .log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(RetailCalcForm.class.getName())
                    .log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(RetailCalcForm.class.getName())
                    .log(java.util.logging.Level.SEVERE, null, ex);
        }
        // </editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new RetailCalcForm().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JButton calculateButton;
    private javax.swing.JButton exitButton;
    private javax.swing.JTextField itemNameText;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JTextField originalPriceText;
    private javax.swing.JTextField percentDiscountedText;
    private javax.swing.JLabel salesPriceLabel;
    // End of variables declaration
}

私が得ることができるどんな助けも大歓迎です。

4

4 に答える 4

3

これは try catch ブロックです (try ブロックを}

try {
    number1  = Integer.parseInt(this.percentDiscountedText.getText());
} catch (Exception e) {
    JOptionPane.showMessageDialog(this, "Invalid Discount Amount", "Error", JOptionPane.ERROR_MESSAGE);
    return;
}

そして、それは例外ではなく例外です


変数と文字列を連結 するには、 +not が必要です。/

this.salesPriceLabel.setText("Discounted Sales Price: " +  answer);


整数を作成するには、名前が必要です。

int = Integer.parseInt("1"); ---> int name = Integer.parseInt("1");

しかし、あなたの場合、新しい int を作成する必要はありません。 number1andを使用する必要があると思いますnumber2


この行の何が問題なのかわかりません。Coolまず、括弧に置き換える必要があると思います

.addGap(28, 28, 2Cool  ---> .addGap(28, 28, 2)

しかし、電卓が機能しなくなりました ( java.lang.IllegalArgumentException: Following is not met: min<=pref<=max)。
私にとっての解決策は、この行を削除することでした。

于 2012-06-05T17:25:36.217 に答える
2

文字列から数値を解析する代わりに、数値フォーマッターでJFormattedTextField / JSpinnerを使用する

于 2012-06-05T17:30:23.153 に答える
2

1 つのこととして、try/catch ブロックは、括弧ではなく、他のすべてのブロックと同様に中括弧を使用します。あなたが持っている

try (
   // some code ...
) catch (Exception e) {
   // catch code here
}

いつあるべきか

try {
   // some code ...
} catch (Exception e) {
   // catch code here
}

しかし、もっと重要なことは、コーディング スタイルを修正する必要があるということです。すべてのコードを入力するまですべてのエラーを無視して、画面に大量のコードを追加しているように見えます。これは災害のレシピです。追加したコードのすべてまたは 2 行の後に、すべてのコンパイル エラーを修正する必要があります。そうしないと、ほぼ修正不可能なネズミの巣状のエラーしか発生しません。

于 2012-06-05T17:20:27.477 に答える
1

あなたは書いている -

int=Integer.parseint(this.originalPriceText.getText()); 

これは間違っています!そのはず -

number1=Integer.parseint(this.originalPriceText.getText()); 

また、try ブロックは中括弧で囲まれています -

try{
    // code goes here
}
catch(Exception ex){
    // code goes here
}

繰り返しますが、 が であると説明しExceptionていますExcemption

これらすべてを修正すると、メソッドは次のようになります-

private void calculateButtonActionPerformed(java.awt.event.ActionEvent evt) {
    int number1 = 0, number2 = 0;
    try{
        number1 = Integer.parseInt(this.originalPriceText.getText());
    }
    catch (Exception e) {
        JOptionPane.showMessageDialog(this, "Invalid Price Amount", "Error", 
                                           JOptionPane.ERROR_MESSAGE);
        return;
    }

    try {
        number2 = Integer.parseInt(this.percentDiscountedText.getText());
    }
    catch (Excemption e) {
        JOptionPane.showMessageDialog(this, "Invalid Discount Amount", "Error", 
                                            JOptionPane.ERROR_MESSAGE);
        return;
    }

    int answer = number1 / number2;
    this.salesPriceLabel.setText("Discounted Sales Price: " / answer);
}

このチュートリアルのクイック ツアーを行う必要があります。

于 2012-06-05T17:47:49.440 に答える