因此,基本上,我正在创建此披萨程序,并且在一页上有一个区域,用户可以在其中选择配料列表。现在每个浇头是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,
)
答案 0 :(得分:0)
在用户选择radio button
之后,您可以在radio button
侦听器上检查选中了radio buttons
的数量,具体取决于您将能够执行的单选按钮计数(已选中单选按钮计数)* 1.50 =总金额。
步骤。
radio buttons
都未选中。radio buttons
已选中/未解锁的状态。伪代码:
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;
}
}
输出:
希望这个答案对您有帮助。
谢谢