#java
#java
Вопрос:
Я пытаюсь создать программу, которая имитирует проверку элементов. И я хотел бы, чтобы количество элементов умножалось на стоимость единицы, чтобы получить общую стоимость, но у меня возникли проблемы с поиском способа сделать это.
Вот мой код.
JLabel amount0 = new JLabel("Amount");
JLabel unitcost0 =new JLabel("Unit Cost");
JLabel unitcost1 = new JLabel("$2.45");
JLabel unitcost2 = new JLabel("$79.99");
JLabel unitcost3 = new JLabel("$45.43");
JLabel unitcost4 = new JLabel("$3.00");
JLabel unitcost5 = new JLabel("$42.00");
JSpinner amount1= new JSpinner(new SpinnerNumberModel(0,0,50,1));
JSpinner amount2= new JSpinner(new SpinnerNumberModel(0,0,50,1));
JSpinner amount3 = new JSpinner(new SpinnerNumberModel(0,0,50,1));
JSpinner amount4= new JSpinner(new SpinnerNumberModel(0,0,50,1));
JSpinner amount5 = new JSpinner(new SpinnerNumberModel(0,0,50,1));
JLabel cost0 = new JLabel("Cost");
JLabel cost1 = new JLabel ( unitcost1* amount1);
любая помощь была бы очень признательна.
Ответ №1:
В Java вы можете выполнять математические операции только с числами, поэтому в вашем случае вам нужно хранить числа как числовую переменную, например Double
:
Double price = 2.45;
Затем вы можете использовать эту числовую переменную в своих компонентах:
JLabel yourLabel = new JLabel("$" price);
Затем для вычисления стоимости вам нужно получить числовое значение JSpinner:
int spinnerValue = yourSpinner.getValue();
И для вычисления конечных итогов:
Double total = price * spinnerValue;
JLabel cost1 = new JLabel ("$" total);
Обратите внимание, что если вы хотите, чтобы это происходило в реальном времени при изменении JSpinner, тогда вам нужно создать событие action для jSpinners, которое обновит значения / метки, это гораздо большая тема и требует нового вопроса, но вот примерный пример:
spinner.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
int spinnerValue = ((JSpinner)e.getSource()).getValue();
Double total = price * spinnerValue;
yourLabel.setText("$" total);
}
});