Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中选中复选框中的多个项目_Java - Fatal编程技术网

如何在Java中选中复选框中的多个项目

如何在Java中选中复选框中的多个项目,java,Java,我正在用java创建一个简单的库存系统。当我创建这个项目的时候,我遇到了一个问题,我有3种食物(炒饭、鸡肉、鱼)。如果我选中多个项目,并在文本框旁边添加数量,则应将其添加到表中 我不知道如何添加数量的文本框有3个文本框那里。如何添加数量文本框我不知道我是否选择了chicken and fish并在应该添加到表中的文本框旁边添加数量 代码: if(lblfried.isSelected() == true) { int price = 12; String name = lblfri

我正在用java创建一个简单的库存系统。当我创建这个项目的时候,我遇到了一个问题,我有3种食物(炒饭、鸡肉、鱼)。如果我选中多个项目,并在文本框旁边添加数量,则应将其添加到表中

我不知道如何添加数量的文本框有3个文本框那里。如何添加数量文本框我不知道我是否选择了chicken and fish并在应该添加到表中的文本框旁边添加数量

代码:

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(),//quantity
JLabel.CENTER
作为
TableCellRenderer
的参数1.如果确实要检查多个选项,请使用
if
而不是
else if
。2.向我们展示如何获取
qty
听起来像是真的想要一个单选按钮。不要比较
isSelected()==true
--它已经是true或false。如果我选择chicken and fish并将数量添加到文本框旁边,它应该添加到表格中,我不知道如何编写代码,先生,请帮助我如何做数量部分先生,有3个文本框可用
Integer.parseInt(textField.getText())
可以用每个文本字段的名称替换
textField