需要有关如何向jlabel添加数字的帮助

时间:2019-03-30 22:28:55

标签: java swing jlabel

因此,基本上,我正在创建此披萨程序,并且在一页上有一个区域,用户可以在其中选择配料列表。现在每个浇头是1.50,只要他们单击我gui上的侧边栏上的浇头,便会显示价格。现在我有12个浇头单选按钮,但是当我单击2个单选按钮时,问题就出现了,它仅显示价格1.50。

我只想知道是否有一种方法,每当我按一次浇头按钮将1.50添加到我的侧边栏上的jLabel上,而当我取消选择浇头时,它将从jLabel中减去1.50,因此价格是准确的。

这是我直到现在完成的代码

    twilio_client.fax.faxes.create(
        to = fax_number,
        from_= twilio_number,
        media_url=fax_url,
        status_callback=status_callback_url,
    )

1 个答案:

答案 0 :(得分:0)

在用户选择radio button之后,您可以在radio button侦听器上检查选中了radio buttons的数量,具体取决于您将能够执行的单选按钮计数(已选中单选按钮计数)* 1.50 =总金额。

步骤。

  1. 最初所有radio buttons都未选中。
  2. 用户选择单选按钮后,请检查所有radio buttons已选中/未解锁的状态。
  3. 获得单选按钮的计数后,将其乘以1.5。

伪代码:

OnRadioSelectListner() {
  checkedCount = getCheckedRadioButtonCount()  //Gets the count of all checked radio butttons
  totalPrice = checkCount * 1.5;
}

getCheckedRadioButtonCount() {
  radioCheckedCount = 0;

  if(radio1.isChecked()) then radioCheckedCount++;
  if(radio2.isChecked()) then radioCheckedCount++;
  if(radio3.isChecked()) then radioCheckedCount++;
  .....
  .....

  return radioCheckedCount;
}

我正在使用复选框来处理您的案件。逻辑保持不变

Item.java

public class Item {
    String title;
    Double price;
    boolean checked;

    Item(String title, Double price) {
        this.title = title;
        this.price = price;
    }

    @Override
    public String toString() {
        return title + " - " + price;

    }
}

Program.java

import javax.swing.*;

public class Program {

    public static void main(String[] args) {
        ScreenOne screenOne = new ScreenOne();
        screenOne.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

ScreenOne.java

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

class ScreenOne extends JFrame {

    private Item items[] = {
            new Item("item1", 1.5),
            new Item("item2", 1.5),
            new Item("item3", 1.5),
    };

    private JPanel jPanel = new JPanel(new GridLayout(0, 1, 4, 4));

    private JLabel totalLabel;

    private JCheckBox[] boxes;

    ScreenOne() {
        initComponents();
    }

    private void initComponents() {
        jPanel.setBorder(new EmptyBorder(100, 100, 100, 100));
        setContentPane(jPanel);
        boxes = new JCheckBox[items.length];

        for (int i = 0; i < items.length; i++) {
            createCheckBox(i);
        }

        totalLabel = new JLabel("Total will appear here");
        totalLabel.setBorder(new EmptyBorder(10, 10, 10, 10));

        jPanel.add(totalLabel);

        setTitle("Multi Checkbox Demo");
        pack();
        setVisible(true);
        setResizable(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    private void createCheckBox(int index) {
        boxes[index] = new JCheckBox(items[index].toString());
        boxes[index].setBorder(new EmptyBorder(0, 0, 0, 0));
        boxes[index].addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                items[index].checked = boxes[index].isSelected();
                int totalItemsChecked = getCheckedCount();

                totalLabel.setText("Total: " + totalItemsChecked * 1.5);
            }
        });
        jPanel.add(boxes[index]);
    }

    private int getCheckedCount() {
        int count = 0;

        for (int i = 0; i < items.length; i++) {
            if(items[i].checked) {
                count++;
            }
        }
        return count;
    }
}

输出:

enter image description here

enter image description here

希望这个答案对您有帮助。

谢谢