Programma Java che consente di aggiungere due numeri generati utilizzando due cursori

Ho questo incarico per la mia classe java dove devo aggiungere due numeri utilizzando i cursori, e io sono molto attaccato. Ecco il mio codice:

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

public class slideCalculator {
JButton add,subtract;
JSlider num1st,num2nd;
JLabel answer;
public slideCalculator(){
    JFrame calc = new JFrame("Mediocre Calculator");
    num1st = new JSlider (0, 100, 0);
    num1st.setMajorTickSpacing (10);
    num1st.setMinorTickSpacing (5);
    num2nd = new JSlider (0, 100, 0);
    num2nd.setMajorTickSpacing (10);
    num2nd.setMinorTickSpacing (5);
    add = new JButton("+");
    subtract = new JButton("-");
    answer = new JLabel("");
    calc.setDefaultCloseOperation(calc.EXIT_ON_CLOSE);
    calc.setVisible(true);
    calc.setBounds(500, 200, 290, 210);
    calc.setLayout(new GridLayout(0,2,1,1));
    calc.add(new JLabel("First Number: "));
    calc.add(num1st);
    calc.add(new JLabel("Second Number: "));
    calc.add(num2nd);
    calc.add(new JLabel("Answer: "));
    calc.add(answer);
    calc.add(add);
    calc.add(subtract);
    add.addActionListener(new action());
    subtract.addActionListener(new action());

}
public static void main(String[] args) {
    slideCalculator lc = new slideCalculator();
}
public class action implements ActionListener {
    public void actionPerformed(ActionEvent ae) {
        int firstNum = Integer.parseInt(num1st.getValue());
        int secondNum = Integer.parseInt(num2nd.getValue());
        if(ae.getValue()== add){
            answer.setText(String.valueOf(firstNum+secondNum));
        }
        else if (ae.getValue()==subtract){
            answer.setText(String.valueOf(firstNum-secondNum));
        }
        } 

}
}

Quando vado a lanciarlo mi non ha voglia di lavorare. Io sono probabilmente manca qualcosa, ma non riesco a capire. Io sono anche la corretta su qualsiasi di esso?

  • “non voglio lavorare” sarebbe d’aiuto se ti dico il perché. Non è possibile ottenere gli errori? L’output non è quello che si aspetta?
  • Post edited: Non c’è bisogno di bash il tuo insegnante come la responsabilità per l’apprendimento di questo argomento è tua e solo tua, a prescindere dal tuo insegnante di “fare un cattivo lavoro”.
InformationsquelleAutor user2180239 | 2013-03-17



3 Replies
  1. 5

    Questo:

    public void actionPerformed(ActionEvent ae) {
        int firstNum = Integer.parseInt(num1st.getValue());
        int secondNum = Integer.parseInt(num2nd.getValue());
        if(ae.getValue()== add){  //*****

    non ha senso. Sparare — non compilare poiché ActionEvent non hanno un getValue() metodo. Non si ottiene l’ActionEvent “valore”, ma piuttosto ottenere il suo actionCommand Stringa di via getActionCommand(), e quindi si può confrontare con altre Stringhe utilizzando la Stringa di equals(...) o equalsIgnoreCase(...) metodo.

    cioè,

    if ("+".equals(ae.getActionCommand()) {
       //do addition
    } else if ("-".equals(ae.getActionCommand()) {
       //do subtraction
    }

    In futuro domande, si prega di inviare tutti gli errori del compilatore che si verificano se si ottiene alcun.

  2. 3

    Si dispone di 2 fonti di errore di compilazione qui.

    JSlider#getValue restituisce un int valore quindi non c’è bisogno di utilizzare Integer.parseInt che si aspetta un String. Invece è possibile utilizzare:

    int firstNum = num1st.getValue();
    int secondNum = num2nd.getValue();

    Anche getValue non è definito per ActionEvent, getSource vi darà la Object di riferimento per la JButton:

    Object source = ae.getSource();
    if (ae.getSource() == add) {
       answer.setText(String.valueOf(firstNum + secondNum));
    } else if (source == subtract) {
       answer.setText(String.valueOf(firstNum - secondNum));
    }
  3. 0
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener; 
    import javax.swing.*;
    
    public class slideCalculator {
    JButton add,subtract;
    JSlider num1st,num2nd;
    JLabel answer;
    public slideCalculator(){
        JFrame calc = new JFrame("Mediocre Calculator");
        num1st = new JSlider (0, 100, 0);
        num1st.setMajorTickSpacing (10);
        num1st.setMinorTickSpacing (5);
        num2nd = new JSlider (0, 100, 0);
        num2nd.setMajorTickSpacing (10);
        num2nd.setMinorTickSpacing (5);
        add = new JButton("+");
        subtract = new JButton("-");
        answer = new JLabel("");
        calc.setDefaultCloseOperation(calc.EXIT_ON_CLOSE);
        calc.setVisible(true);
        calc.setBounds(500, 200, 290, 210);
        calc.setLayout(new GridLayout(0,2,1,1));
        calc.add(new JLabel("First Number: "));
        calc.add(num1st);
        calc.add(new JLabel("Second Number: "));
        calc.add(num2nd);
        calc.add(new JLabel("Answer: "));
        calc.add(answer);
        calc.add(add);
        calc.add(subtract);
        add.addActionListener(new action());
        subtract.addActionListener(new action());
    
    }
    public static void main(String[] args) {
        slideCalculator lc = new slideCalculator();
    }
    public class action implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            int firstNum = num1st.getValue();
            int secondNum = num2nd.getValue();
            if("+".equals(ae.getActionCommand())) {
                answer.setText(String.valueOf(firstNum+secondNum));
            }
            else 
            if ("-".equals(ae.getActionCommand())) {
                answer.setText(String.valueOf(firstNum-secondNum));
            }
            } 
    
    }
    }

Lascia un commento