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