Ich ging davon aus, dass ich einfach getSelectedItem() für foodRateBox aufrufen könnte, um das ausgewählte Element abzurufen, so wie ich es mit dem Abrufen des Textes aus einem Feld wie foodField mit getText() kann, aber wenn ich es versuche, gelingt mir das get:
"foodRateBox kann nicht aufgelöst werden Java(570425394)"
Was fehlt mir?
Grundlegendes:
Code: Select all
public class BudgetBase extends JPanel { // based on Swing JPanel
JFrame topLevelFrame; // top-level JFrame
GridBagConstraints layoutConstraints = new GridBagConstraints(); // layout
private JButton calculateButton; // Calculate button
private JButton exitButton; // Exit button
private JTextField wagesField; // Wages text field
private JTextField loansField; // Loans text field
private JTextField otherIncomeField; // text field for anyhting else
private JTextField totalIncomeField; // Total Income field
private JTextField foodField; // food text field
private JTextField rentField; // rent text field
private JTextField otherSpendingField; // text field for anyhting else
private JTextField totalSpendingField; // Total Spending field
private JTextField deficitField; // difference between spending and income
String[] rate = {"/week", "/month", "/year"}; // selection for the JComboBoxes
...
Code: Select all
private void initComponents() {
...
// Row 1 - Wages label, box, and text field
JLabel wagesLabel = new JLabel("Wages");
addComponent(wagesLabel, 1, 0);
final JComboBox wagesRateBox = new JComboBox(rate);
addComponent(wagesRateBox, 1, 1);
wagesField = new JTextField("", 10); // blank initially, with 10 columns
wagesField.setHorizontalAlignment(JTextField.RIGHT) ;
addComponent(wagesField, 1, 2);
...
Code: Select all
public double calculateTotalSpending() {
// get values from spendng text fields. valie is NaN if an error occurs
String spendingError = ""; // track errors to output as one message
double food = getTextFieldValue(foodField);
double rent = getTextFieldValue(rentField);
double otherS = getTextFieldValue(otherSpendingField); //otherS for 'Other Spending'
String foodRate = foodRateBox.getSelectedItem();
...
Code: Select all
getTextFieldValueCode: Select all
private double getTextFieldValue(JTextField field) {
// get value as String from field
String fieldString = field.getText(); // get text from text field
if ((fieldString.trim()).equals("")) { // if text field is blank, return 0
return 0.0;
}
else { // if text field is not blank, parse it into a double
try {
return Double.parseDouble(fieldString); // parse field number into a double
} catch (java.lang.NumberFormatException ex) { // catch invalid number exception
return Double.NaN; // return NaN to show that field is not a number
}
}
}
Mobile version