📄 frmbrjf.java
字号:
package FrmBRJF;
import org.eclipse.swt.events.*;
import org.eclipse.swt.*;
import java.sql.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import myprojects.FrmMenu.*;
public class FrmBRJF {
//====================控件的声明===============================
private static Font font;
private Shell shell;
private Display display;
private Text txtJFRQ;
private Text txtZYH;
private Text txtBRXM;
private Combo cobJFXS;
private Text txtSFY;
private Text txtSFYYSJ;
private Text txtJE;
private Text txtJFHJ;
private Text txtFYHJ;
private boolean zyhc=false;
private Button radioBRFY;
private Button radioBRJF;
private Button radioYSJ;
private Button btnSAVE;
private Button btnFQ;
private Button btnBACK;
private Table table;
//声明费用情况组,单选按钮组,compositeBUTTON用于放置确定,放弃,返回按钮
private Group groupFYQK;
private Group groupRADIO;
private Composite compositeBUTTON;
//对table里面的每一列声明
private TableColumn col1,col2,col3,col4,col5,col6,col7,col8,
col9,col10,col11,col12,col13,col14,col15,
col16,col17, col18,col19,col20;
//声明并实例化数据库
private FrmBRJFDb.FrmBRJFDb Db = new FrmBRJFDb.FrmBRJFDb();
//main函数,整个程序入口
public static void main(){
Display display = new Display();
FrmBRJF brjf=new FrmBRJF();
//创建整体框架
brjf.createShell();
brjf.shell.open();
while(!brjf.shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
font.dispose();
display.dispose();
}
//创建shell
private void createShell(){
//声明一个字体设置shell的相关属性
font = new Font (display, "system", 18, SWT.NORMAL);
shell = new Shell(SWT.DIALOG_TRIM);
shell.setBounds(240,230,655,480);
shell.setText("病人缴费登记");
//设置shell的布局为4列
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 4;
shell.setLayout(gridLayout);
//连接数据库
boolean flg=true;
try{
flg=Db.getConnection();
}
catch(Exception e){
System.out.println(e.getMessage());
}
if(flg){
errorBox("连接数据库出错");
}
////////调用各方法、创建整体界面/////////////////////
//创建上部分的小控件
createWidgets();
//创建交费情况组
createGroup();
//创建数据表格
createTable();
//创建单选按钮控件组
creategroupRADIO();
//创建确定放弃返回按钮
createButton();
shell.open();
}
///////////////创建上部分的小控件函数体////////////////////////////
private void createWidgets(){
//设置时间lbl的格式,占4格
GridData gridData0 = new GridData(GridData.HORIZONTAL_ALIGN_END);
gridData0.horizontalSpan = 4;
Label labtime = new Label(shell,SWT.None);
//labtime用于显示系统时间
labtime.setText("");
labtime.setLayoutData(gridData0);
Label labsfysj = new Label(shell,SWT.None);
labsfysj.setText("收费员应上交");
txtSFYYSJ = new Text(shell,SWT.BORDER);
txtSFYYSJ.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
txtSFYYSJ.setEnabled(false);
//获得上缴数据
txtSFYYSJ.setText(String.valueOf(Db.getysjje()));
GridData gridData1 = new GridData(GridData.HORIZONTAL_ALIGN_END);
gridData1.horizontalSpan = 2;
Label labname = new Label(shell,SWT.None);
labname.setFont(font);
labname.setText(" 病人缴费登记");
Label labfree0 = new Label(shell,SWT.None);
//增加两个空行占位
Label labfree1 = new Label(shell,SWT.None);
Label labfree2 = new Label(shell,SWT.None);
labfree1.setLayoutData(gridData0);
labfree2.setLayoutData(gridData0);
Label labzyh = new Label(shell,SWT.None);
labzyh.setText("住院号");
GridData gridData2 = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gridData2.horizontalSpan = 1;
txtZYH = new Text(shell,SWT.BORDER);
txtZYH.setLayoutData(gridData2);
//住院号输入筐增加监视器
txtZYH.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent event) {
switch (event.keyCode)
{//捕捉enter键响应事件
case SWT.CR:
//激活所有组件
if(Db.checkzyh(txtZYH.getText())){
txtBRXM.setEnabled(true);
txtJFRQ.setEnabled(true);
cobJFXS.setEnabled(true);
txtJE.setEnabled(true);
radioBRFY.setEnabled(true);
radioBRJF.setEnabled(true);
btnFQ.setEnabled(true);
txtJFHJ.setText(String.valueOf(Db.getjfhj(txtZYH.getText())));
txtFYHJ.setText(String.valueOf(Db.getfyhj(txtZYH.getText())));
txtBRXM.setText(Db.getname(txtZYH.getText()));
//缴费形式选择现金
cobJFXS.select(0);
//设置时间格式并显示到交费时间text筐
Date nowTime = new Date();
SimpleDateFormat matter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String time = String.valueOf(matter.format(nowTime));
txtJFRQ.setText(time);
//光标定位到金额筐
txtJE.setFocus();
zyhc=true;
}
else{
txtZYH.setText("");
txtZYH.setFocus();
errorBox("住院号错误!");
}
break;
case SWT.ESC:
//捕获ESC键,返回到初始状态
txtBRXM.setEnabled(false);
txtJFRQ.setEnabled(false);
cobJFXS.setEnabled(false);
txtSFY.setEnabled(false);
txtJE.setEnabled(false);
txtJFHJ.setEnabled(false);
txtFYHJ.setEnabled(false);
radioBRFY.setEnabled(false);
radioBRJF.setEnabled(false);
btnSAVE.setEnabled(false);
btnFQ.setEnabled(false);
txtZYH.setText("");txtBRXM.setText("");txtJFRQ.setText("");cobJFXS.setText("");
txtSFY.setText("");txtJE.setText("");txtJFHJ.setText("");txtFYHJ.setText("");
break;
}
}
});
//改变住院号后引发的监视器
txtZYH.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
txtJE.setText("");
txtJFHJ.setText("");
txtFYHJ.setText("");
txtBRXM.setEnabled(false);
txtJFRQ.setEnabled(false);
cobJFXS.setEnabled(false);
txtSFY.setEnabled(false);
txtJE.setEnabled(false);
radioBRFY.setEnabled(false);
radioBRJF.setEnabled(false);
radioBRFY.setSelection(false);
radioBRJF.setSelection(false);
radioYSJ.setSelection(true);
if(zyhc){
table.removeAll();
setTable(1);
zyhc=false;
}
btnSAVE.setEnabled(false);
btnFQ.setEnabled(false);
}
});
GridData gridData3 = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
gridData1.horizontalSpan = 2;
Label labbrxm = new Label(shell,SWT.None);
labbrxm.setText("病人姓名");
labbrxm.setLayoutData(gridData3);
txtBRXM = new Text(shell,SWT.BORDER);
txtBRXM.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
txtBRXM.setEnabled(false);
Label labjfrq = new Label(shell,SWT.None);
labjfrq.setText("缴费日期");
txtJFRQ = new Text(shell,SWT.BORDER);
txtJFRQ.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
txtJFRQ.setEnabled(false);
Label labjfxs = new Label(shell,SWT.None);
labjfxs.setText("缴费形式");
labjfxs.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
cobJFXS = new Combo(shell,SWT.None|SWT.Selection);
cobJFXS.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
cobJFXS.add("现金",0);
cobJFXS.add("支票",1);
cobJFXS.setEnabled(false);
Label labsfy = new Label(shell,SWT.None);
labsfy.setText("收费员");
txtSFY = new Text(shell,SWT.BORDER);
txtSFY.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
txtSFY.setEnabled(false);
//数据库获得数据
txtSFY.setText(Db.getUserID());
Label labje = new Label(shell,SWT.None);
labje.setText(" 金额 ");
labje.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
txtJE = new Text(shell,SWT.BORDER);
txtJE.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
txtJE.setEnabled(false);
//增加金额框监视器,让保存按扭可用
txtJE.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
btnSAVE.setEnabled(true);
if(txtJE.getText()==""){
btnSAVE.setEnabled(false);
}
}
});
}
//////创建病人缴费情况的控件组的函数实体//////////////////////////////
private void createGroup(){
groupFYQK = new Group(shell,SWT.SHADOW_ETCHED_IN);
groupFYQK.setText("病人缴费及费用发生情况");
//设置group显示格式
GridData gridData0 = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gridData0.horizontalSpan=4;
groupFYQK.setLayoutData(gridData0);
//设置group布局
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 4;
groupFYQK.setLayout(gridLayout);
//添加各组件到group
Label labjfhj = new Label(groupFYQK,SWT.None);
labjfhj.setText("缴费合计 ");
txtJFHJ = new Text(groupFYQK,SWT.BORDER);
txtJFHJ.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
txtJFHJ.setEnabled(false);
Label labfyhj = new Label(groupFYQK,SWT.None);
labfyhj.setText(" 费用合计 ");
txtFYHJ = new Text(groupFYQK,SWT.BORDER);
txtFYHJ.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
txtFYHJ.setEnabled(false);
}
///////////////////创建表格 //////////////////////////////////////////
private void createTable(){
table = new Table(shell,SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
//设置表格表头可见
table.setHeaderVisible(true);
//设置表框线可见
table.setLinesVisible(true);
//设置表格填充格式为占据整行
GridData gridData1 = new GridData(GridData.FILL_BOTH);
gridData1.horizontalSpan =4;
table.setLayoutData(gridData1);
//调用创建列子函数,分配资源,让第7---20列不可见
colBuild1();colBuild2();
col7.setWidth(0);col8.setWidth(0);col9.setWidth(0);col10.setWidth(0);
col11.setWidth(0);col12.setWidth(0);col13.setWidth(0);col14.setWidth(0);
col15.setWidth(0);col16.setWidth(0);col17.setWidth(0);col18.setWidth(0);
col19.setWidth(0);col20.setWidth(0);
}
/////////////创建单选按钮控件组///////////////////////////////
private void creategroupRADIO(){
groupRADIO = new Group(shell,SWT.SHADOW_ETCHED_IN);
//设置group显示格式
GridData gridData0 = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gridData0.horizontalSpan=2;
groupRADIO.setLayoutData(gridData0);
//设置group布局
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 3;
groupRADIO.setLayout(gridLayout);
//下面是增加3个单选按钮到groupRADIO
//增加病人费用按钮
radioBRFY = new Button(groupRADIO,SWT.RADIO);
radioBRFY.setText("病人费用");
radioBRFY.setEnabled(false);
//增加病人费用按钮监视器
radioBRFY.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
//如果第一列可见就先去掉全部列,然后创建第7-20列.
if(!col1.isDisposed())
{
//清除全部列
dispose2();
dispose1();
//创建7-20列
colBuild2();
}
//清除表格内容
table.removeAll();
//把相应数据库数据填入表格
setTable(3);
}
});
//增加病人交费按钮
radioBRJF = new Button(groupRADIO,SWT.RADIO);
radioBRJF.setText("病人缴费");
radioBRJF.setEnabled(false);
//增加病人交费单选按钮监视器
radioBRJF.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
//如果第7-20列存在就先去掉全部列,再增加1-6列
if(!col7.isDisposed())
{//清除列函数
dispose2();
dispose1();
//创建1-6列函数
colBuild1();
}
// 清除表格内容,从新装入数据
table.removeAll();
setTable(2);
}
});
//增加应上缴按钮
radioYSJ = new Button(groupRADIO,SWT.RADIO);
radioYSJ.setText("应上缴");
radioYSJ.setSelection(true);
//增加应上缴按钮监视器
radioYSJ.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
if(!col7.isDisposed()){
dispose2();
dispose1();
colBuild1();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -