Ich bekomme den Fehler "* Operator für JTextField, Double" für den Listener eines Projekts. Es ist ein Java-GUI-Projekt, wir müssen zwei Textfelder haben, eines für "Stunden", das andere "Rate". Wir benötigen auch eine Combobox, in der der Mitarbeitertyp und eine Berechnungsschaltfläche aufgelistet sind. Ich bekomme den Fehler in Switch-Fall 2 (Pay = Stunden * PayRate;) unter dem Hörer. Wie konvertiere ich den Text, damit ich Stunden mit payRate multiplizieren kann?Java * Operator nicht definiert für JTextField, Double
public class EmployeeControls extends JPanel
{
private JLabel cost, inputLabel1, inputLabel2, outputLabel, resultLabel;
private JTextField hours, rate;
private JComboBox employeeCombo;
private JButton calculateButton;
private double pay, bonus, payRate;
public EmployeeControls()
{
inputLabel1 = new JLabel("Hours:");
inputLabel2 = new JLabel("Rate:");
outputLabel = new JLabel("Pay:");
resultLabel = new JLabel("------");
hours = new JTextField(2);
rate = new JTextField(5);
hours.addActionListener(new CalcListener());
rate.addActionListener(new CalcListener());
String[] employeeTypes = {"Select an Employee
Type","Salaried","Hourly","Volunteer"};
employeeCombo = new JComboBox(employeeTypes);
calculateButton = new JButton("Calculate Pay");
cost = new JLabel("Pay: " + pay);
setPreferredSize(new Dimension (400, 100));
setBackground(Color.cyan);
add(employeeCombo);
add(calculateButton);
calculateButton.addActionListener(new CalcListener());
}
private class CalcListener implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
String text = rate.getText();
String strRate = Double.toString(payRate);
String text2 = hours.getText();
String strHours = Double.toString(hours);
int employeeType = employeeCombo.getSelectedIndex();
switch(employeeType)
{
case 0:
JOptionPane.showMessageDialog(null, "Select an Employee
Type");
break;
case 1:
pay = (2000.00 + bonus);
JOptionPane.showMessageDialog(null, "Enter bonus amount");
break;
case 2:
pay = hours * payRate;
break;
case 3:
pay = 0.00;
break;
}
cost.setText("Cost = " + pay);
}
}
}
'pay = Stunden * payRate' -' Stunden 'ist ein' JTextField', wie können Sie es mehrfach verdoppeln? – MadProgrammer
'String strHours = Double.toString (Stunden);' wird Ihnen auch Probleme aus ähnlichen Gründen geben – MadProgrammer
@MadProgrammer wir sind verpflichtet, ein Textfeld zu verwenden, eine Payrate muss eine Dezimalzahl haben, so glaube ich nicht, ich kann benutze Ganzzahl. Welchen Typ würdest du benutzen? – lorac1969