如何在Java中选中复选框中的多个项目
我正在用java创建一个简单的库存系统。当我创建这个项目的时候,我遇到了一个问题,我有3种食物(炒饭、鸡肉、鱼)。如果我选中多个项目,并在文本框旁边添加数量,则应将其添加到表中 我不知道如何添加数量的文本框有3个文本框那里。如何添加数量文本框我不知道我是否选择了chicken and fish并在应该添加到表中的文本框旁边添加数量 代码:如何在Java中选中复选框中的多个项目,java,Java,我正在用java创建一个简单的库存系统。当我创建这个项目的时候,我遇到了一个问题,我有3种食物(炒饭、鸡肉、鱼)。如果我选中多个项目,并在文本框旁边添加数量,则应将其添加到表中 我不知道如何添加数量的文本框有3个文本框那里。如何添加数量文本框我不知道我是否选择了chicken and fish并在应该添加到表中的文本框旁边添加数量 代码: if(lblfried.isSelected() == true) { int price = 12; String name = lblfri
if(lblfried.isSelected() == true)
{
int price = 12;
String name = lblfried.getText();
}
else if(lblfish.isSelected() == true)
{
int price = 15;
String name = lblfish.getText();
}
else if(lblchicken.isSelected() == true)
{
int price = 25;
String name =lblchicken.getText();
}
int tot = qty * price;
model = (DefaultTableModel) jTable1.getModel();
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment( JLabel.CENTER );
jTable1.setDefaultRenderer(String.class, centerRenderer);
model.addRow(new Object[]
{
name,
price,
qty,
tot,
});
int sum = 0;
for(int i = 0; i < jTable1.getRowCount(); i++)
{
sum = sum + Integer.parseInt(jTable1.getValueAt(i, 3).toString());
}
txtsub.setText(Integer.toString(sum));
// Make table above all this, so you can add rows afterwards
model = (DefaultTableModel) jTable1.getModel();
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment( JLabel.CENTER );
jTable1.setDefaultRenderer(String.class, centerRenderer);
int sum = 0; // You can maintain sum here, then "For-loop" can be skipped
// Now if checkBox is checked just add the row into table
if(lblfried.isSelected())
{
int qty = Integer.parseInt(qty_fried.getText());
model.addRow(new Object[]
{
lblfried.getText(), // name
12, // price
qty_fried.getText(),// quantity <- replace this
qty * 12 // total
});
sum += qty * 12;
}
if(lblfish.isSelected())
{
int qty = Integer.parseInt(qty_fish.getText());
model.addRow(new Object[]
{
lblfish.getText(),
15,
qty_fish.getText(),
qty * 15
});
sum += qty * 15;
}
if(lblchicken.isSelected())
{
int qty = Integer.parseInt(qty_chicken.getText());
model.addRow(new Object[]
{
lblchicken.getText(),
25,
qty_chicken.getText(),
qty * 25
});
sum += qty * 25;
}
txtsub.setText(Integer.toString(sum));
if(lblfried.isSelected()==true)
{
国际价格=12;
String name=lblfried.getText();
}
else if(lblfish.isSelected()==true)
{
国际价格=15;
String name=lblfish.getText();
}
else if(lblchicken.isSelected()==true)
{
国际价格=25;
String name=lblchicken.getText();
}
int tot=数量*价格;
model=(DefaultTableModel)jTable1.getModel();
DefaultTableCellRenderer centerRenderer=新的DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(JLabel.CENTER);
jTable1.setDefaultRenderer(String.class,centerRenderer);
model.addRow(新对象[])
{
名称
价格,
数量,
托特,
});
整数和=0;
对于(int i=0;i
如果我理解正确,你的意思是什么。这可能是因为您使用的是else,如果现在选择了语句(比如fried rice),那么它现在将跳过其他检查并直接创建表。尝试只使用多个if
语句,尽管您也在创建新的price
变量并每次分配它们。您的方法存在问题,如下所示:
- 使用
if-else
可使代码仅检测一个复选框,并跳过其余复选框,无论是否选中
- 您正在使用相同的变量
qty
计算所有if else
末尾的总计。所有具有quantity的文本框必须具有不同的名称检查名称并在给定代码中替换它们
- 您需要先创建表,然后检查并计算将在表中显示的属性,以便以后添加它们
代码:
if(lblfried.isSelected() == true)
{
int price = 12;
String name = lblfried.getText();
}
else if(lblfish.isSelected() == true)
{
int price = 15;
String name = lblfish.getText();
}
else if(lblchicken.isSelected() == true)
{
int price = 25;
String name =lblchicken.getText();
}
int tot = qty * price;
model = (DefaultTableModel) jTable1.getModel();
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment( JLabel.CENTER );
jTable1.setDefaultRenderer(String.class, centerRenderer);
model.addRow(new Object[]
{
name,
price,
qty,
tot,
});
int sum = 0;
for(int i = 0; i < jTable1.getRowCount(); i++)
{
sum = sum + Integer.parseInt(jTable1.getValueAt(i, 3).toString());
}
txtsub.setText(Integer.toString(sum));
// Make table above all this, so you can add rows afterwards
model = (DefaultTableModel) jTable1.getModel();
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment( JLabel.CENTER );
jTable1.setDefaultRenderer(String.class, centerRenderer);
int sum = 0; // You can maintain sum here, then "For-loop" can be skipped
// Now if checkBox is checked just add the row into table
if(lblfried.isSelected())
{
int qty = Integer.parseInt(qty_fried.getText());
model.addRow(new Object[]
{
lblfried.getText(), // name
12, // price
qty_fried.getText(),// quantity <- replace this
qty * 12 // total
});
sum += qty * 12;
}
if(lblfish.isSelected())
{
int qty = Integer.parseInt(qty_fish.getText());
model.addRow(new Object[]
{
lblfish.getText(),
15,
qty_fish.getText(),
qty * 15
});
sum += qty * 15;
}
if(lblchicken.isSelected())
{
int qty = Integer.parseInt(qty_chicken.getText());
model.addRow(new Object[]
{
lblchicken.getText(),
25,
qty_chicken.getText(),
qty * 25
});
sum += qty * 25;
}
txtsub.setText(Integer.toString(sum));
//将表置于所有这些之上,以便以后可以添加行
model=(DefaultTableModel)jTable1.getModel();
DefaultTableCellRenderer centerRenderer=新的DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(JLabel.CENTER);
jTable1.setDefaultRenderer(String.class,centerRenderer);
整数和=0;//您可以在这里维护sum,然后可以跳过“For循环”
//现在,如果选中复选框,只需将行添加到表中即可
if(lblfried.isSelected())
{
int qty=Integer.parseInt(qty_.getText());
model.addRow(新对象[])
{
lblfried.getText(),//名称
12,//价格
qty\u fried.getText(),//quantityJLabel.CENTER
作为TableCellRenderer
的参数1.如果确实要检查多个选项,请使用if
而不是else if
。2.向我们展示如何获取qty
听起来像是真的想要一个单选按钮。不要比较isSelected()==true
--它已经是true或false。如果我选择chicken and fish并将数量添加到文本框旁边,它应该添加到表格中,我不知道如何编写代码,先生,请帮助我如何做数量部分先生,有3个文本框可用Integer.parseInt(textField.getText())
可以用每个文本字段的名称替换textField