Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 打印收据后清除JTable,再次下单时返回_Java_Jtable - Fatal编程技术网

Java 打印收据后清除JTable,再次下单时返回

Java 打印收据后清除JTable,再次下单时返回,java,jtable,Java,Jtable,当我单击收据按钮时,它会询问用户是否要再次订购,我已经清除了表格,但当我再次订购新产品时,我在第一张收据上首先订购的项目会返回表格 public void refTable() { DefaultTableModel tableModel = (new javax.swing.table.DefaultTableModel( new Object[][]{}, new String[]{ "Men

当我单击收据按钮时,它会询问用户是否要再次订购,我已经清除了表格,但当我再次订购新产品时,我在第一张收据上首先订购的项目会返回表格

public void refTable() {

    DefaultTableModel tableModel = (new javax.swing.table.DefaultTableModel(
            new Object[][]{},
            new String[]{
                "Menu", "Price", "Quantity", "Total"
            }
    ) {
        boolean[] canEdit = new boolean[]{
            false, false, false, false
        };

        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return canEdit[columnIndex];
        }
    });
    try {

        double total = 0;
        for (MenuModel menumodel : controller1.getMenulist()) {
            ArrayList al = new ArrayList();
            al.add(menumodel.getItemName());
            al.add(formatter.format(menumodel.getPrice()));
            al.add((int) menumodel.getQuantity() + "");
            al.add(formatter.format(menumodel.getTotal()));
            total = total + menumodel.getTotal();

            tableModel.addRow(al.toArray());
        }
        double tax = 0.12;
        JLabel_subTotal.setText(formatter.format(total));
        JLabel_Tax.setText(formatter.format(total * tax));
        JLabel_Total.setText(formatter.format((total * tax) + total));
        JTableOrderReceived.setModel(tableModel);
    } catch (NullPointerException e) {
        System.out.println("sad");
    }
}

private void JTableMenuOrderMouseReleased(java.awt.event.MouseEvent evt) {                                              
    // TODO add your handling code here:

    int quanti = 0;
    int row = JTableMenuOrder.rowAtPoint(evt.getPoint());
    if (row >= 0 && row < JTableMenuOrder.getRowCount()) {
        JTableMenuOrder.setRowSelectionInterval(row, row);
    } else {
        JTableMenuOrder.clearSelection();
    }
    int rowindex = JTableMenuOrder.getSelectedRow();
    if (rowindex < 0) {
        return;
    }

    String quantity = JOptionPane.showInputDialog(this, controller.getMenulist().get(rowindex).getItemName() + "\n" + "Number of Quantity :");

    

    selectedProduct = controller.getMenulist().get(rowindex);
    MenuModel mouseSelected = new MenuModel();
    MenuModel menumodel = controller1.search(selectedProduct.getItemName());

    try {
        if (menumodel != null) {
            selectedProduct = controller1.search(selectedProduct.getItemName());
            if (quanti > 0) {
                double temp = menumodel.getQuantity();
                quanti += temp;
                controller1.removeMenu(selectedProduct);
                refTable();
                mouseSelected.setItemName(selectedProduct.getItemName());
                mouseSelected.setPrice(selectedProduct.getPrice());
                mouseSelected.setQuantity(quanti);
                mouseSelected.setTotal(quanti * selectedProduct.getPrice());
                controller1.addMenu(mouseSelected);
            } else {
                JOptionPane.showMessageDialog(this, "Error");

            }
        } else {
            if (quanti > 0) {
                mouseSelected.setItemName(selectedProduct.getItemName());
                mouseSelected.setPrice(selectedProduct.getPrice());
                mouseSelected.setQuantity(quanti);
                mouseSelected.setTotal(quanti * selectedProduct.getPrice());
                controller1.addMenu(mouseSelected);
            } else {
                JOptionPane.showMessageDialog(this, "Cannot add item: " + selectedProduct.getItemName() + "\nYou must enter quantity", "Error", JOptionPane.ERROR_MESSAGE);
            }
        }

        refTable();

    } catch (NullPointerException e) {
        JOptionPane.showMessageDialog(this, "Cannot add item: " + selectedProduct.getItemName() + "\nQuantity must be greater than zero!", "Error", JOptionPane.ERROR_MESSAGE);
    }
}                                             

private void JTableOrderReceivedMouseReleased(java.awt.event.MouseEvent evt) {                                                  
    // TODO add your handling code here:
    int row = JTableOrderReceived.rowAtPoint(evt.getPoint());
    if (row >= 0 && row < JTableOrderReceived.getRowCount()) {
        JTableOrderReceived.setRowSelectionInterval(row, row);

    } else {
        JTableOrderReceived.clearSelection();
    }

    int rowindex = JTableOrderReceived.getSelectedRow();
    if (rowindex < 0) {
        return;
    }
    selectedProduct = controller.getMenulist().get(rowindex);
    if (evt.isPopupTrigger()) {
        Delete.show(evt.getComponent(), evt.getX(), evt.getY());
    }
}                                                 

  //This is the reciept button action----
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    System.out.println("Customer name: " + menubill.getCustomerName() + "\n");
    int result = JOptionPane.showConfirmDialog(null, "Would you like to order again?", "EAT N' RUN", JOptionPane.YES_OPTION);
    if (result == JOptionPane.NO_OPTION) {
        System.exit(0);
    }
    DefaultTableModel model = (DefaultTableModel) JTableOrderReceived.getModel();
    model.setRowCount(0);
    JTextField_customerName.setText("");
}
public void refTable(){
DefaultTableModel tableModel=(新的javax.swing.table.DefaultTableModel(
新对象[][]{},
新字符串[]{
“菜单”、“价格”、“数量”、“总计”
}
) {
boolean[]canEdit=新的boolean[]{
假,假,假,假
};
公共布尔值isCellEditable(int-rowIndex、int-columnIndex){
返回canEdit[columnIndex];
}
});
试一试{
双倍合计=0;
for(MenuModel MenuModel:controller1.getMenulist()){
ArrayList al=新的ArrayList();
al.add(menumodel.getItemName());
al.add(formatter.format(menumodel.getPrice());
al.add((int)menumodel.getQuantity()+);
al.add(formatter.format(menumodel.getTotal());
total=total+menumodel.getTotal();
tableModel.addRow(al.toArray());
}
双重税=0.12;
JLabel_subTotal.setText(formatter.format(total));
JLabel_Tax.setText(formatter.format(total*Tax));
JLabel_Total.setText(formatter.format((Total*tax)+Total));
JTableOrderReceived.setModel(tableModel);
}捕获(NullPointerException e){
System.out.println(“sad”);
}
}
private void jTableMenuOrderMormoUserEleased(java.awt.event.MouseEvent evt){
//TODO在此处添加您的处理代码:
int-quanti=0;
int row=JTableMenuOrder.rowAtPoint(evt.getPoint());
如果(行>=0&&row0){
double temp=menumodel.getQuantity();
数量+=温度;
控制器1.移除菜单(选择产品);
refTable();
mouseSelected.setItemName(selectedProduct.getItemName());
mouseSelected.setPrice(selectedProduct.getPrice());
选择鼠标。设置数量(数量);
mouseSelected.setTotal(quanti*selectedProduct.getPrice());
控制器1.添加菜单(选择鼠标);
}否则{
showMessageDialog(这个“错误”);
}
}否则{
如果(量化>0){
mouseSelected.setItemName(selectedProduct.getItemName());
mouseSelected.setPrice(selectedProduct.getPrice());
选择鼠标。设置数量(数量);
mouseSelected.setTotal(quanti*selectedProduct.getPrice());
控制器1.添加菜单(选择鼠标);
}否则{
JOptionPane.showMessageDialog(此“无法添加项:”+selectedProduct.getItemName()+“\n您必须输入数量”、“错误”、JOptionPane.Error\u消息);
}
}
refTable();
}捕获(NullPointerException e){
JOptionPane.showMessageDialog(此“无法添加项:”+selectedProduct.getItemName()+“\n相关性必须大于零!”,“错误”,JOptionPane.Error\u消息);
}
}                                             
private void JTableOrderReceivedMouseReleased(java.awt.event.MouseEvent evt){
//TODO在此处添加您的处理代码:
int row=JTableOrderReceived.rowAtPoint(evt.getPoint());
if(行>=0&&row
我想问题在于这段代码(DefaultTableModel=(DefaultTableModel)JTableOrderReceived.getModel();
model.setRowCount(0);)它只是暂时清除我收到的订单,但当我再次在菜单中订购产品时,它会返回。。也许有人能帮你怎么做?或者它返回的原因有什么问题。

首先,变量名不应以大写字符开头。学习并遵循标准。大多数变量都是正确的。保持一致!!!1) 您如何知道执行了setRowCount(0)语句?如果是,则TableModel将为空。如果d