桂的问题,主要方法不起作用? [英] Gui problem, main method doesnt work?
本文介绍了桂的问题,主要方法不起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我看不出问题所在!它工作正常,但随后我添加了一些变量,现在它告诉我
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屋!
查看全文