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

问题描述 投票:-1回答:1

所以基本上我正在创建这个披萨程序,在一个页面上我有一个部分,人们可以选择浇头列表。现在每个顶部都是1.50,一旦他们点击顶部,我的gui上的侧边栏就会显示价格。现在我有12个浇头单选按钮,但问题出现当我点击2个单选按钮它只显示价格1.50。

我只是想知道每次按下顶部按钮时是否有办法在我的侧栏上添加1.50到我的jLabel,当我取消选择顶部时,它会从jLabel中减去1.50,因此价格是准确的。

这是我现在所做的代码

import java.awt.event.*;
import javax.swing.*;
/**
 *
 * @author silve
 */
public class Page3 extends javax.swing.JFrame {

    /**
     * Creates new form Page3
     */
    public Page3() {
        initComponents();


      double Checkout1 = RadioBtn();

        double Lj = Checkout1 * 1.50;

        String LM = String.valueOf(Lj);

        ToppingsPriceL.setText((LM) + "0");  


    }
public double RadioBtn() {
   double Checkout = 0;


    GreenOlivesBtn.addItemListener(new ItemListener(){
        @Override
        public void itemStateChanged(ItemEvent e) {
            if(GreenOlivesBtn.isSelected()) {
        Checkout++; 
    }
        }

    });


   return Checkout;



}    
java swing jlabel
1个回答
0
投票

用户选择radio button后,在radio button监听器上,您可以检查检查了多少radio buttons,具体取决于您可以执行的单选按钮检查计数(单选按钮检查计数)* 1.50 =总金额。

脚步。

  1. 最初所有radio buttons都未经检查。
  2. 用户选择单选按钮后,检查所有qazxsw poi的状态是否已选中/未选中。
  3. 获得无线电检查按钮的数量后,将计数乘以1.5。

伪代码:

radio buttons

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

item.Java

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

program.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;

    }
}

screen one.Java

import javax.swing.*;

public class Program {

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

输出:

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

希望这个答案可以帮到你。

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.