桂的问题,主要方法不起作用? [英] Gui problem, main method doesnt work?

查看:61
本文介绍了桂的问题,主要方法不起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看不出问题所在!它工作正常,但随后我添加了一些变量,现在它告诉我

I don''t see what is the problem! It worked fine but then I added some variables and now it tells me that

Exception in thread "main" java.lang.NullPointerException
	at java.awt.Container.addImpl(Container.java:1043)
	at java.awt.Container.add(Container.java:363)
	at Expenses.buildPanel(Expenses.java:100)
	at Expenses.<init>(Expenses.java:46)
	at Expenses.main(Expenses.java:108)
Java Result: 1


这是我的代码,您可以复制并粘贴它.


This is my code, you can just copy and paste it.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;


/**
 *
 * @author Alexander
 */
public class Expenses extends JPanel
{
    String stringDay,stringAirfare,stringCarRental,stringMilesDriven,stringParkingFee,stringTaxiCharges,stringSeminarFee,stringLodgingFee;
    double totalAllowed,numberDays,AirFare,CarRental,MilesDriven,ParkingFee,TaxiCharges,seminarFee,lodgingFee;
    private JPanel panel;
    private JLabel numberOfDays;
    private JLabel amountAirfare;
    private JLabel amontRentalFee;
    private JLabel numberMiles;
    private JLabel parkingFee;
    private JLabel taxiFee;
    private JLabel seminarFeeLabel;
    private JLabel lodgingFeeLabel;
    private JLabel totalExpenses;
    private JLabel totalAllowedLabel;
    private JLabel excessMustPaid;
    private JLabel amountSaved;
    
    private JTextField daysField;
    private JTextField amountAirfareField;
    private JTextField rentalFeeField;
    private JTextField milesDrivenField;
    private JTextField parkingFeeField;
    private JTextField taxiFeeField;
    private JTextField smeinarFeeField;
    private JTextField lodgingFeeField;
    
    private JButton calculateButton;
    
    private final int WIDTH = 500;
    private final int HEIGHT = 500;
    
    public Expenses()
    {
        JFrame frame = new JFrame("Travel Expenses");
        frame.setSize(WIDTH,HEIGHT);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        buildPanel();
        frame.add(panel);
        frame.setVisible(true);
        
    }
    private void buildPanel()
    {
        
     numberOfDays = new JLabel("Number of days on the trip: ");
     daysField = new JTextField(10);
     
     amountAirfare = new JLabel("Amount of airfare: ");
     amountAirfareField = new JTextField(10);
     
     amontRentalFee = new JLabel("Amount of car rental fee: ");
     rentalFeeField = new JTextField(10);
     
     numberMiles = new JLabel("Number of miles driven: ");
     milesDrivenField = new JTextField(10);
     
     parkingFee = new JLabel("Amount of parking fees: ");
     parkingFeeField = new JTextField(10);
     
     taxiFee = new JLabel("Taxi charges: ");
     taxiFeeField = new JTextField(10);
     
     seminarFeeLabel = new JLabel("Conference or seminar registration fees: ");
     smeinarFeeField = new JTextField(10);
     
     lodgingFeeLabel = new JLabel("Lodging charges, per night");
     lodgingFeeField = new JTextField(10);
     
     totalAllowedLabel = new JLabel("Total allowed to spend is "+ totalAllowed);
     calculateButton = new JButton("Calculate");
     
     panel = new JPanel();
     
     panel.add(numberOfDays);
     panel.add(daysField);
     panel.add(amountAirfare);
     panel.add(amountAirfareField);
     panel.add(amontRentalFee);
     panel.add(rentalFeeField);
     panel.add(numberMiles);
     panel.add(milesDrivenField);
     panel.add(parkingFee);
     panel.add(parkingFeeField);
     panel.add(taxiFee);
     panel.add(taxiFeeField);
     panel.add(seminarFeeLabel);
     panel.add(smeinarFeeField);
     panel.add(lodgingFeeLabel);
     panel.add(lodgingFeeField);
     panel.add(calculateButton);
     panel.add(totalExpenses);
     panel.add(totalAllowedLabel);
     panel.add(excessMustPaid);
     panel.add(amountSaved);
    }
    
    public static void main(String[] args)
    {
        new Expenses();
    }
     public void actionPerformed(ActionEvent e)
     {

         final double dayMeal = 37.00;
         final double parkingFee = 10.00;
         final double taxiFee = 20.00;
         final double lodgingCharge = 95.00;
         final double rentCar = 0.27;
         double totalMilesDriven;
         
         stringDay = daysField.getText();
         numberDays = Double.parseDouble(stringDay);
         
         stringAirfare = amountAirfareField.getText();
         AirFare = Double.parseDouble(stringAirfare);
         
         stringCarRental = rentalFeeField.getText();
         CarRental = Double.parseDouble(stringCarRental);
         
         stringMilesDriven = milesDrivenField.getText();
         MilesDriven = Double.parseDouble(stringMilesDriven);
         
         stringParkingFee = parkingFeeField.getText();
         ParkingFee = Double.parseDouble(stringParkingFee);
         
         stringTaxiCharges = taxiFeeField.getText();
         TaxiCharges = Double.parseDouble(stringTaxiCharges);
         
         stringSeminarFee = smeinarFeeField.getText();
         seminarFee = Double.parseDouble(stringSeminarFee);
         
         stringLodgingFee = lodgingFeeField.getText();
         lodgingFee = Double.parseDouble(stringLodgingFee);
         
         totalMilesDriven = MilesDriven * rentCar;
         totalAllowed = numberDays * dayMeal * parkingFee * taxiFee * lodgingCharge * rentCar * totalMilesDriven;</init>

推荐答案

totalAllowed = new JLabel("Total allowed to spend is "+ totalAllowed);


? ? ? ? ?您要在这里做什么?

彼得


? ? ? ? ? What are you trying to do here?

Peter


开始工作吧!



Got it to work!



import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;

/**
 *
 * @author Alexander
 */
public class Expenses extends JFrame {

    private final int WIDTH = 500;
    private final int HEIGHT = 500;
    JPanel panel = new JPanel();
    private JLabel numberOfDaysLabel;
    private JLabel amountAirfareLabel;
    private JLabel amontRentalFeeLabel;
    private JLabel numberMilesLabel;
    private JLabel parkingFeeLabel;
    private JLabel taxiFeeLabel;
    private JLabel seminarFeeLabel;
    private JLabel lodgingFeeLabel;
    private JTextField daysField;
    private JTextField amountAirfareField;
    private JTextField rentalFeeField;
    private JTextField milesDrivenField;
    private JTextField parkingFeeField;
    private JTextField taxiFeeField;
    private JTextField smeinarFeeField;
    private JTextField lodgingFeeField;
    private JButton calculateButton;

    public Expenses() {
        setTitle("Travel Expenses");
        setSize(WIDTH, HEIGHT);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        buildPanel();
        add(panel);
        setVisible(true);

    }

    private void buildPanel() {

        numberOfDaysLabel = new JLabel("Number of days on the trip: ");
        daysField = new JTextField(10);

        amountAirfareLabel = new JLabel("Amount of airfare: ");
        amountAirfareField = new JTextField(10);

        amontRentalFeeLabel = new JLabel("Amount of car rental fee: ");
        rentalFeeField = new JTextField(10);

        numberMilesLabel = new JLabel("Number of miles driven: ");
        milesDrivenField = new JTextField(10);

        parkingFeeLabel = new JLabel("Amount of parking fees: ");
        parkingFeeField = new JTextField(10);

        taxiFeeLabel = new JLabel("Taxi charges: ");
        taxiFeeField = new JTextField(10);

        seminarFeeLabel = new JLabel("Conference or seminar registration fees: ");
        smeinarFeeField = new JTextField(10);

        lodgingFeeLabel = new JLabel("Lodging charges, per night");
        lodgingFeeField = new JTextField(10);

        calculateButton = new JButton("Calculate");
        calculateButton.addActionListener(new buttonListener());
        panel = new JPanel(new GridLayout(9, 2, 5, 10));

        panel.add(numberOfDaysLabel);
        panel.add(daysField);
        panel.add(amountAirfareLabel);
        panel.add(amountAirfareField);
        panel.add(amontRentalFeeLabel);
        panel.add(rentalFeeField);
        panel.add(numberMilesLabel);
        panel.add(milesDrivenField);
        panel.add(parkingFeeLabel);
        panel.add(parkingFeeField);
        panel.add(taxiFeeLabel);
        panel.add(taxiFeeField);
        panel.add(seminarFeeLabel);
        panel.add(smeinarFeeField);
        panel.add(lodgingFeeLabel);
        panel.add(lodgingFeeField);
        panel.add(calculateButton);

    }

    public class buttonListener implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            String stringDay, stringAirfare, stringCarRental, stringMilesDriven, stringParkingFee, stringTaxiCharges, stringSeminarFee, stringLodgingFee;
            double totalAllowed, totalOwe, totalSaved, totalExpenses, numberDays, AirFare, CarRental, MilesDriven, ParkingFee, TaxiCharges, seminarFee, lodgingFee;
            final double dayMeal = 37.00;
            final double parkingFee = 10.00;
            final double taxiFee = 20.00;
            final double lodgingCharge = 95.00;
            final double rentCar = 0.27;
            double totalMilesDriven;

            stringDay = daysField.getText();
            numberDays = Double.parseDouble(stringDay);

            stringAirfare = amountAirfareField.getText();
            AirFare = Double.parseDouble(stringAirfare);

            stringCarRental = rentalFeeField.getText();
            CarRental = Double.parseDouble(stringCarRental);

            stringMilesDriven = milesDrivenField.getText();
            MilesDriven = Double.parseDouble(stringMilesDriven);

            stringParkingFee = parkingFeeField.getText();
            ParkingFee = Double.parseDouble(stringParkingFee);

            stringTaxiCharges = taxiFeeField.getText();
            TaxiCharges = Double.parseDouble(stringTaxiCharges);

            stringSeminarFee = smeinarFeeField.getText();
            seminarFee = Double.parseDouble(stringSeminarFee);

            stringLodgingFee = lodgingFeeField.getText();
            lodgingFee = Double.parseDouble(stringLodgingFee);

            totalMilesDriven = MilesDriven * rentCar;
            totalExpenses = AirFare * CarRental * MilesDriven * ParkingFee * TaxiCharges * seminarFee * lodgingFee;
            totalAllowed = numberDays * dayMeal * parkingFee * taxiFee * lodgingCharge * rentCar * totalMilesDriven;

            if (totalExpenses > totalAllowed) {
                totalOwe = totalExpenses - totalAllowed;
            } else {
                totalOwe = 0;
            }

            if (totalAllowed > totalExpenses) {
                totalSaved = totalAllowed - totalExpenses;
            } else {
                totalSaved = 0;
            }


            System.out.println("The total expenses for the trip are " + totalExpenses
                    + " \nThe total allowed to spend is " + totalAllowed + "\nThe total you owe is "
                    + totalOwe + "\nTotal saved is " + totalSaved);

        }
    }
}


这篇关于桂的问题,主要方法不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆