📄 addreckoninginfo.java
字号:
package cliniquemanager;
import java.awt.BorderLayout;
import java.awt.Frame;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JButton;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JScrollPane;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.ListSelectionModel;
import java.sql.ResultSet;
import java.util.*;
import java.sql.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
import javax.swing.JOptionPane;
import java.sql.Time;
import java.util.Date;
import java.lang.*;
import javax.swing.JEditorPane;
import javax.swing.border.TitledBorder;
import java.awt.SystemColor;
/**
* <p>Title: CliniqueManager</p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: shine</p>
*
* @author robin
* @version 1.0
*/
public class AddReckoningInfo extends JDialog {
MyDatabase db=new MyDatabase();
ResultSet rs;
Calendar time = Calendar.getInstance();
String pmname = new String();
char leech[] = new char[200];
String leechdom = new String("");
String leechdemo = new String("");
JPanel panel1 = new JPanel();
BorderLayout borderLayout1 = new BorderLayout();
JPanel jpCenter = new JPanel();
JLabel jLabel1 = new JLabel();
JButton jbtnCancle = new JButton();
JButton jbtnOK = new JButton();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JTextField jtxtDName = new JTextField();
JTextField jtxtDate = new JTextField();
JLabel jLabel6 = new JLabel();
JTextField jtxtPID = new JTextField();
JTextField jtxtPName = new JTextField();
JLabel jLabel7 = new JLabel();
JTextField jtxtTotal = new JTextField();
JLabel jlblMname = new JLabel();
JTextField jtxtMname = new JTextField();
DefaultListModel leechdomModelb = new DefaultListModel();
JList jlstLeechdomb = new JList(leechdomModelb);
JScrollPane listScrollPaneb = new JScrollPane(jlstLeechdomb);
JLabel jlblMsg = new JLabel();
JLabel jlblMsg2 = new JLabel();
JEditorPane jEditorPane1 = new JEditorPane();
JEditorPane jEditorPane2 = new JEditorPane();
JEditorPane jEditorPane3 = new JEditorPane();
TitledBorder titledBorder1 = new TitledBorder("病人用药");
TitledBorder titledBorder2 = new TitledBorder("病人信息");
TitledBorder titledBorder3 = new TitledBorder("操作提示");
TitledBorder titledBorder4 = new TitledBorder("基本操作");
public AddReckoningInfo(Frame owner, String title, boolean modal) {
super(owner, title, modal);
try {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
jbInit();
pack();
} catch (Exception exception) {
exception.printStackTrace();
}
}
public AddReckoningInfo() {
this(new Frame(), "AddReckoningInfo", false);
}
private void jbInit() throws Exception {
pmname = MyDatabase.username;
panel1.setLayout(borderLayout1);
this.setTitle("添加帐单信息(结帐)");
this.setPreferredSize(new Dimension(610, 540));
jLabel1.setFont(new java.awt.Font("宋体", Font.BOLD, 24));
jLabel1.setText("添加帐单信息");
jLabel1.setBounds(new Rectangle(241, 20, 150, 29));
jbtnCancle.setBounds(new Rectangle(333, 449, 100, 30));
jbtnCancle.setText("取消");
jbtnCancle.addActionListener(new AddReckoningInfo_jbtnCancle_actionAdapter(this));
jbtnOK.setBounds(new Rectangle(216, 450, 100, 30));
jbtnOK.setText("确定");
jbtnOK.addActionListener(new AddReckoningInfo_jbtnOK_actionAdapter(this));
jpCenter.setLayout(null);
jLabel2.setText("结帐病人姓名:");
jLabel2.setBounds(new Rectangle(45, 133, 91, 20));
jLabel3.setText("结帐日期:");
jLabel3.setBounds(new Rectangle(48, 298, 62, 31));
jLabel4.setText("主治医生:");
jLabel4.setBounds(new Rectangle(48, 172, 66, 31));
jtxtDName.setEnabled(false);
jtxtDName.setBounds(new Rectangle(137, 175, 171, 30));
jtxtDate.setEnabled(false);
jtxtDate.setBounds(new Rectangle(137, 298, 170, 30));
jLabel6.setText("结帐病人编号:");
jLabel6.setBounds(new Rectangle(44, 95, 85, 23));
jtxtPID.setBounds(new Rectangle(139, 89, 170, 30));
jtxtPID.addKeyListener(new AddReckoningInfo_jtxtPID_keyAdapter(this));
jtxtPName.setEnabled(false);
jtxtPName.setBounds(new Rectangle(138, 129, 171, 30));
jLabel7.setText("费用总价:");
jLabel7.setBounds(new Rectangle(48, 218, 68, 28));
jtxtTotal.setEnabled(false);
jtxtTotal.setBounds(new Rectangle(137, 215, 170, 29));
jlblMname.setText("操作人员:");
jlblMname.setBounds(new Rectangle(50, 256, 67, 26));
jtxtMname.setEnabled(false);
jtxtMname.setBounds(new Rectangle(137, 253, 170, 30));
jlstLeechdomb.setEnabled(false);
jlstLeechdomb.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
jlstLeechdomb.setVisibleRowCount(10);
listScrollPaneb.setEnabled(false);
listScrollPaneb.setBorder(titledBorder1);
listScrollPaneb.setBounds(new Rectangle(349, 68, 238, 277));
jlblMsg.setText("请输入需要结帐病人的编号,系统自动显示该病人消费信息!");
jlblMsg.setBounds(new Rectangle(135, 358, 352, 35));
jlblMsg2.setText("单击确定按钮,以上信息将添加到帐单里面!");
jlblMsg2.setBounds(new Rectangle(164, 389, 243, 30));
jEditorPane1.setBackground(SystemColor.control);
jEditorPane1.setBorder(titledBorder2);
jEditorPane1.setEditable(false);
jEditorPane1.setText("");
jEditorPane1.setBounds(new Rectangle(26, 67, 300, 277));
jEditorPane2.setBackground(SystemColor.control);
jEditorPane2.setEnabled(false);
jEditorPane2.setBorder(titledBorder3);
jEditorPane2.setText("");
jEditorPane2.setBounds(new Rectangle(26, 354, 562, 71));
jEditorPane3.setBackground(SystemColor.control);
jEditorPane3.setEnabled(false);
jEditorPane3.setBorder(titledBorder4);
jEditorPane3.setText("");
jEditorPane3.setBounds(new Rectangle(26, 428, 562, 69));
getContentPane().add(panel1);
panel1.add(jpCenter, java.awt.BorderLayout.CENTER);
jpCenter.add(jtxtPName);
jpCenter.add(jLabel2);
jpCenter.add(jLabel7);
jpCenter.add(jLabel6);
jpCenter.add(jLabel4);
jpCenter.add(jtxtPID);
jpCenter.add(jtxtTotal);
jpCenter.add(jtxtDName);
jpCenter.add(listScrollPaneb);
jpCenter.add(jtxtMname);
jpCenter.add(jtxtDate);
jpCenter.add(jLabel3);
jpCenter.add(jlblMname);
jpCenter.add(jEditorPane1);
jpCenter.add(jlblMsg);
jpCenter.add(jlblMsg2);
jpCenter.add(jEditorPane2);
jpCenter.add(jbtnCancle);
jpCenter.add(jbtnOK);
jpCenter.add(jLabel1);
jpCenter.add(jEditorPane3);
//设置窗体大小为不可改变
this.setResizable(false);
}
//为取消按钮添加事件,点此按钮后将关闭当前窗口
public void jbtnCancle_actionPerformed(ActionEvent e) {
dispose();
}
//为病人编号文本框添加键盘事件,当按下一个数字键后,想根据输入的号码相识相应病人的相信信息在对应组件里面
public void jtxtPID_keyReleased(KeyEvent e) {
jtxtPName.setText("");
jtxtDName.setText("");
jtxtTotal.setText("");
leechdomModelb.clear();
//获得当前日期并显示在日期文本框里面
int year = time.get(time.YEAR);
int month = time.get(time.MONTH)+1;
int day = time.get(time.DATE);
jtxtMname.setText(pmname);
jtxtDate.setText(year+"-"+month+"-"+day);
//获得输入的编号所对应的病人信息并显示在窗体上
rs = db.getResultSet("SELECT * FROM patient WHERE ptnt_id='"+ Integer.parseInt(jtxtPID.getText())+"'");
try{
while (rs.next()) {
jtxtPName.setText(rs.getString("name"));
jtxtDName.setText(rs.getString("dname"));
jtxtTotal.setText(rs.getString("price"));
leechdom = rs.getString("leechdom");
leech = leechdom.toCharArray();
//用For循环依次取出病人用药,并添加到病人用药列表框里面
for(int i=0;i<leech.length;i++){
if(leech[i]==',')
{
leechdomModelb.addElement(leechdemo);
leechdemo="";
}
else if(i==leech.length-1)
{
leechdemo=leechdemo+leech[i];
leechdomModelb.addElement(leechdemo);
}
else
{
leechdemo=leechdemo+leech[i];
}
}
}
}catch(SQLException se){
se.printStackTrace();
}
}
//为确定按牛添加事件,当点确定按纽后,病人的信息将被添加到帐单表里面,生成该病人的帐单信息
public void jbtnOK_actionPerformed(ActionEvent e) {
String url=new String();
String strValue=new String();
Statement stm=db.getStatement();
int num=jlstLeechdomb.getModel().getSize();
leechdom = leechdomModelb.getElementAt(0).toString();
//用“,”号间隔依次将列表框里的病人用药以字符串的方式存储到病人表的药品字段里面
for(int i=1;i<num;i++)
{
leechdom = leechdom+","+leechdomModelb.getElementAt(i).toString();
}
//用SQL语句添加新的帐单信息
url="INSERT INTO reckoning(ptnt_id,pname,dname,leechdom,price,mname,date";
strValue="'"+ Integer.parseInt(jtxtPID.getText())+"','"+jtxtPName.getText()+"','"+jtxtDName.getText()+"','"+leechdom+"','"+jtxtTotal.getText()+"','"+jtxtMname.getText()+"','"+String.valueOf(jtxtDate.getText())+"')";
url=url+")values(" +strValue;
try{
stm.executeUpdate(url);
}catch(SQLException se){
se.printStackTrace();
}
//添加帐单信息成功,显示提示信息
JOptionPane.showMessageDialog(null,"添加帐单信息成功!","系统提示",JOptionPane.INFORMATION_MESSAGE);
db.close();
dispose();
}
}
class AddReckoningInfo_jbtnOK_actionAdapter implements ActionListener {
private AddReckoningInfo adaptee;
AddReckoningInfo_jbtnOK_actionAdapter(AddReckoningInfo adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jbtnOK_actionPerformed(e);
}
}
class AddReckoningInfo_jtxtPID_keyAdapter extends KeyAdapter {
private AddReckoningInfo adaptee;
AddReckoningInfo_jtxtPID_keyAdapter(AddReckoningInfo adaptee) {
this.adaptee = adaptee;
}
public void keyReleased(KeyEvent e) {
adaptee.jtxtPID_keyReleased(e);
}
}
class AddReckoningInfo_jbtnCancle_actionAdapter implements ActionListener {
private AddReckoningInfo adaptee;
AddReckoningInfo_jbtnCancle_actionAdapter(AddReckoningInfo adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jbtnCancle_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -