Java Swing - JComboBox getSelectedItem() findet das Objekt nicht (kann nicht gelöst werden)Java

Java-Forum
Anonymous
 Java Swing - JComboBox getSelectedItem() findet das Objekt nicht (kann nicht gelöst werden)

Post by Anonymous »

Ich erstelle ein einfaches Budgetrechner-Tool mit ein paar Eingabefeldern und einer JComboBox zum Auswählen von /Woche, /Monat oder /Jahr
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
...
Dann habe ich eine Funktion für die Komponenten und füge sie zum Gridbag hinzu

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);

...
Wenn die Schaltfläche Berechnen gedrückt wird, ruft sie eine Funktion auf, um einige Berechnungen durchzuführen, und hier möchte ich das Element in der JComboBox abrufen.

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

getTextFieldValue
ist genau das:

Code: 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
}
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post