📄 additionalconsumedframe.java
字号:
package view.mainframe.guestconsumed.guestcheckoutframe;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.UIManager;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import vo.Goods;
import vo.GoodsConsumedInfo;
import common.centerwindow.CenterWindow;
import common.checkinputvalue.Check;
import common.currenttime.JLabelTime1;
import control.consumedcontrol.GoodsConsumedControl;
import control.goodssetting.GoodsSettingControl;
import dao.consumeddao.GuestConsumedDao;
import dao.consumeddao.GoodsConsumedDao;
//增加消费类
public class AdditionalConsumedframe extends JFrame {
private static AdditionalConsumedframe instance;// 通过单子设计模式来定义一个类对象
private JScrollPane jScrollPaneright = null;// 右边滚动面板,用来放置商品消费表
private JTextField jTextFieldgetConsumedNumber = null;// 文本输入消费数量
private JFrame jFrame = null;// 定义该主面板对象
private JPanel jContentPane = null;// 定义面板对象
private JTable jTableGoodsInfoRigter = null;// 商品消费表
private JTree tree = null;// 树,用来保存商品消费品种
private JTextField jTextFieldgetGoodsName = null;// 商品名
private JLabel jLaberoom = null;// 房间号
private JLabel jLabeconsumedNumber = null;// 标签消费数量
private JTable guestConsumedInfoleft = null;// 用来放置商品表
private static JTextField jTextFieldgetConsumedId = null;// 定义流水线号对象,用来保存获得的流水线号
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private JTabbedPane jTabbedPane = null;// 用来加载两个切换面板
private JScrollPane jScrollPaneleft = null;// 左边滚动面板,用来放置商品表
private JButton jButton = null;
private JButton jButton1 = null;
private JPanel jPanel = null;
private JPanel jPanel1 = null;
private JLabel jLabel2 = null;
private JButton jButton2 = null;
private JTextField jTextFieldgetRoomNumber = null;// 保存房间号
private static JFrame jFrameAdditionalConsumed = null;//主窗体对象
private JLabel jLabelgetGoodsAlert = null;//商品警报量
private JTextField jTextFieldgetGoodsSellPrice = null;//商品销售价
private JLabel jLabelgetGoodsStock = null;//商品库存标签
private JTextField jTextFieldgetConsumedMoney = null;//商品消费金额
private JTextField jTextFieldgetHadConsumedMoney = null;//商品消费单价
//构造方法
public static AdditionalConsumedframe getOriginalRoom(String roomNumber,
long consumedId) {
if (instance == null) {
instance = new AdditionalConsumedframe();
}
instance.getJTextFieldgetConsumedId();
instance.jFrame.setVisible(true);
instance.jTextFieldgetRoomNumber.setText(roomNumber);
instance.jTextFieldgetConsumedId.setText(String.valueOf(consumedId));
instance.flushtable1();
instance.flushtable2();
return instance;
}
// 构造方法
public AdditionalConsumedframe() {
try {
UIManager
.setLookAndFeel("com.nilo.plaf.nimrod.NimRODLookAndFeel");
} catch (Exception e1) {
}
jFrameAdditionalConsumed = getJFrame();
}
//初始化商品销售价
private JTextField getJTextFieldgetGoodsSellPrice() {
if (jTextFieldgetGoodsSellPrice == null) {
jTextFieldgetGoodsSellPrice = new JTextField();
jTextFieldgetGoodsSellPrice.setVisible(false);
jTextFieldgetGoodsSellPrice.setBounds(new java.awt.Rectangle(342,
47, 13, 14));
}
return jTextFieldgetGoodsSellPrice;
}
//初始化消费金遏
private JTextField getJTextFieldgetConsumedMoney() {
if (jTextFieldgetConsumedMoney == null) {
jTextFieldgetConsumedMoney = new JTextField();
jTextFieldgetConsumedMoney.setVisible(false);
jTextFieldgetConsumedMoney.setBounds(new java.awt.Rectangle(362,
144, 16, 28));
}
return jTextFieldgetConsumedMoney;
}
//初始化该种商品的消费金额
private JTextField getJTextFieldgetHadConsumedMoney() {
if (jTextFieldgetHadConsumedMoney == null) {
jTextFieldgetHadConsumedMoney = new JTextField();
jTextFieldgetHadConsumedMoney.setVisible(false);
jTextFieldgetHadConsumedMoney.setBounds(new java.awt.Rectangle(361,
185, 15, 26));
}
return jTextFieldgetHadConsumedMoney;
}
// 主入口方法,用来调试
public static void main(String[] args) {
AdditionalConsumedframe tt = new AdditionalConsumedframe();
try {
UIManager.setLookAndFeel("com.nilo.plaf.nimrod.NimRODLookAndFeel");
// 渲染主界面
} catch (Exception e1) {
e1.printStackTrace();
}
tt.getJFrame();
}
//初始化主窗体
private JFrame getJFrame() {
if (jFrame == null) {
jFrame = new JFrame();
jFrame.setSize(new java.awt.Dimension(809, 491));
jFrame.setTitle("增加消费");
jFrame.setContentPane(getJContentPane());
jFrame
.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jFrame.setResizable(true);
new CenterWindow().centerWindow(jFrame);
jFrame.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowOpened(java.awt.event.WindowEvent e) {//添加窗体事件,为两个表数据进行及时刷新
flushtable1();
flushtable2();
}
public void windowClosing(java.awt.event.WindowEvent e) {
jFrame.setVisible(false);
jFrame.dispose();
}
});
jFrame.setVisible(true);
}
return jFrame;
}
private JTextField getJTextFieldgetConsumedId() {
if (jTextFieldgetConsumedId == null) {
jTextFieldgetConsumedId = new JTextField();
jTextFieldgetConsumedId.setBounds(new java.awt.Rectangle(290, 176,
10, 22));
jTextFieldgetConsumedId.setVisible(false);
}
return jTextFieldgetConsumedId;
}
// 初始化各种标签
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel1 = new JLabel();
jLabel1.setBounds(new java.awt.Rectangle(514, 4, 120, 39));
jLabel1
.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 14));
jLabel1
.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("消费清单");
jLabel = new JLabel();
jLabel.setBounds(new java.awt.Rectangle(112, 6, 127, 35));
jLabel.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 14));
jLabel.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel.setText("商品清单");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.setFont(new java.awt.Font("Dialog",
java.awt.Font.PLAIN, 14));
jContentPane.add(jLabel, null);
jContentPane.add(jLabel1, null);
jContentPane.add(getJTabbedPane(), null);
jContentPane.add(getJScrollPane(), null);
jContentPane.add(getJButton(), null);
jContentPane.add(getJButton1(), null);
}
return jContentPane;
}
//初始化jTabbedpane
private JTabbedPane getJTabbedPane() {
if (jTabbedPane == null) {
jTabbedPane = new JTabbedPane();
jTabbedPane.setBounds(new java.awt.Rectangle(0, 48, 387, 409));
jTabbedPane.addTab("消费项目(列表)", null, getJPanel(), null);
jTabbedPane.addTab("消费项目(清单)", null, getJPanel1(), null);
}
return jTabbedPane;
}
//初始化滚动面板
private JScrollPane getJScrollPane() {
if (jScrollPaneright == null) {
jScrollPaneright = new JScrollPane();
jScrollPaneright
.setBounds(new java.awt.Rectangle(390, 56, 410, 352));
jScrollPaneright.setViewportView(getJTableRigter());
}
return jScrollPaneright;
}
// 该消费撤消按纽用来撤消已经更新的记录
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new java.awt.Rectangle(424, 418, 114, 34));
jButton.setText("消费撤消");
jButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
DefaultTableModel model = (DefaultTableModel) getJTableRigter()
.getModel();
int row = getJTableRigter().getSelectedRow();//首先,获得选定的一行
GoodsConsumedControl control = new GoodsConsumedControl();
GuestConsumedDao dao = new GuestConsumedDao();
String date = getJTableRigter().getValueAt(row, 4)
.toString();//获得消费时间
int number = Integer.parseInt(getJTableRigter()
.getValueAt(row, 2).toString());
String name = getJTableRigter().getValueAt(row, 1)
.toString();
String consumeId = jTextFieldgetConsumedId.getText();
double consumedMoney = Double
.parseDouble(getJTextFieldgetHadConsumedMoney()
.getText().trim());
if (!getJTextFieldgetHadConsumedMoney().getText()//消费金额不能为空
.equals("")) {
if (control.deleteGoodsInfo(date)
& control.updateConsumedInfo(name, number)
& dao.deleteGuestGoodsConsumedInfo(//这里的三个判断是对数据进行从新分配,如果撤消则库存量得增加该消费数量
consumeId, consumedMoney)) {
JOptionPane.showMessageDialog(null, "商品撤消成功",
"删除提示", JOptionPane.WARNING_MESSAGE);
model.removeRow(row);//删除该行
getJTextFieldgetHadConsumedMoney().setText("");
flushtable1();//商品表刷新
flushtable2();//消费表刷新
}
} else {
JOptionPane.showMessageDialog(null, "请先选中您要撤销的商品",
"删除提示", JOptionPane.WARNING_MESSAGE);
}
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "请先选中您要撤销的商品",
"删除提示", JOptionPane.YES_OPTION);
}
}
});
}
return jButton;
}
//初始化按纽
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setBounds(new java.awt.Rectangle(626, 419, 105, 31));
jButton1.setText("关闭窗口");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jFrame.setVisible(false);
jFrame.dispose();
}
});
}
return jButton1;
}
// 商品消费表
private JTable getJTableRigter() {
if (jTableGoodsInfoRigter == null) {
DefaultTableModel model = null;
Object[][] p = null;
String[] n = { "消费流水号", "商品名称", "消费数量", "消费金额", "消费时间" };
Object[][] date = {};
model = new DefaultTableModel(date, n);
jTableGoodsInfoRigter = new JTable(model);
jTableGoodsInfoRigter.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTableGoodsInfoRigter.setBounds(new java.awt.Rectangle(0, 0, 400,
80));
jTableGoodsInfoRigter.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
String[] value = getConsumedJTableValue();
getJTextFieldgetHadConsumedMoney().setText(value[3].trim());
}
});
}
return jTableGoodsInfoRigter;
}
// 用来获取商品消费表的值,保存在数组里面
private String[] getConsumedJTableValue() {
int columns = getJTableRigter().getColumnCount();
String[] value = new String[columns];
int row = getJTableRigter().getSelectedRow();
JTable table = getJTableRigter();
for (int i = 0; i < columns; i++) {
value[i] = getValue(table, row, i);
}
return value;
}
//初始化面板
private JPanel getJPanel() {
if (jPanel == null) {
jLabelgetGoodsStock = new JLabel();
jLabelgetGoodsStock.setVisible(false);
jLabelgetGoodsStock.setBounds(new java.awt.Rectangle(361, 98, 12,
24));
jLabelgetGoodsStock.setText("JLabel");
jLabelgetGoodsAlert = new JLabel();
jLabelgetGoodsAlert.setBounds(new java.awt.Rectangle(339, 17, 16,
20));
jLabelgetGoodsAlert.setText("JLabel");
jLabelgetGoodsAlert.setVisible(false);
jLabeconsumedNumber = new JLabel();
jLabeconsumedNumber
.setBounds(new java.awt.Rectangle(12, 43, 68, 26));
jLabeconsumedNumber
.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabeconsumedNumber.setText("消费数量:");
jLaberoom = new JLabel();
jLaberoom.setBounds(new java.awt.Rectangle(204, 11, 51, 27));
jLaberoom.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD,
12));
jLaberoom.setText("包间:");
jLabel2 = new JLabel();
jLabel2.setBounds(new java.awt.Rectangle(11, 11, 69, 28));
jLabel2
.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel2.setText("商品名称:");
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.setName("");
jPanel.add(jLabel2, null);
jPanel.add(getgoodsName(), null);
jPanel.add(jLaberoom, null);
jPanel.add(jLabeconsumedNumber, null);
jPanel.add(getJTextFieldgetConsumedNumber(), null);
jPanel.add(getJButton2(), null);
jPanel.add(getJScrollPane1(), null);
jPanel.add(getJTextFieldgetRoomNumber(), null);
jPanel.add(jLabelgetGoodsAlert, null);
jPanel.add(getJTextFieldgetGoodsSellPrice(), null);
jPanel.add(jLabelgetGoodsStock, null);
jPanel.add(getJTextFieldgetConsumedMoney(), null);
jPanel.add(getJTextFieldgetHadConsumedMoney(), null);
}
return jPanel;
}
private JTextField getJTextFieldgetRoomNumber() {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -