?? 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;
//聲明費(fèi)用情況組,單選按鈕組,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;
//聲明并實(shí)例化數(shù)據(jù)庫
private FrmBRJFDb.FrmBRJFDb Db = new FrmBRJFDb.FrmBRJFDb();
//main函數(shù),整個程序入口
public static void main(){
Display display = new Display();
FrmBRJF brjf=new FrmBRJF();
//創(chuàng)建整體框架
brjf.createShell();
brjf.shell.open();
while(!brjf.shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
font.dispose();
display.dispose();
}
//創(chuàng)建shell
private void createShell(){
//聲明一個字體設(shè)置shell的相關(guān)屬性
font = new Font (display, "system", 18, SWT.NORMAL);
shell = new Shell(SWT.DIALOG_TRIM);
shell.setBounds(240,230,655,480);
shell.setText("病人繳費(fèi)登記");
//設(shè)置shell的布局為4列
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 4;
shell.setLayout(gridLayout);
//連接數(shù)據(jù)庫
boolean flg=true;
try{
flg=Db.getConnection();
}
catch(Exception e){
System.out.println(e.getMessage());
}
if(flg){
errorBox("連接數(shù)據(jù)庫出錯");
}
////////調(diào)用各方法、創(chuàng)建整體界面/////////////////////
//創(chuàng)建上部分的小控件
createWidgets();
//創(chuàng)建交費(fèi)情況組
createGroup();
//創(chuàng)建數(shù)據(jù)表格
createTable();
//創(chuàng)建單選按鈕控件組
creategroupRADIO();
//創(chuàng)建確定放棄返回按鈕
createButton();
shell.open();
}
///////////////創(chuàng)建上部分的小控件函數(shù)體////////////////////////////
private void createWidgets(){
//設(shè)置時間lbl的格式,占4格
GridData gridData0 = new GridData(GridData.HORIZONTAL_ALIGN_END);
gridData0.horizontalSpan = 4;
Label labtime = new Label(shell,SWT.None);
//labtime用于顯示系統(tǒng)時間
labtime.setText("");
labtime.setLayoutData(gridData0);
Label labsfysj = new Label(shell,SWT.None);
labsfysj.setText("收費(fèi)員應(yīng)上交");
txtSFYYSJ = new Text(shell,SWT.BORDER);
txtSFYYSJ.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
txtSFYYSJ.setEnabled(false);
//獲得上繳數(shù)據(jù)
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(" 病人繳費(fèi)登記");
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);
//住院號輸入筐增加監(jiān)視器
txtZYH.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent event) {
switch (event.keyCode)
{//捕捉enter鍵響應(yīng)事件
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()));
//繳費(fèi)形式選擇現(xiàn)金
cobJFXS.select(0);
//設(shè)置時間格式并顯示到交費(fèi)時間text筐
Date nowTime = new Date();
SimpleDateFormat matter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String time = String.valueOf(matter.format(nowTime));
txtJFRQ.setText(time);
//光標(biāo)定位到金額筐
txtJE.setFocus();
zyhc=true;
}
else{
txtZYH.setText("");
txtZYH.setFocus();
errorBox("住院號錯誤!");
}
break;
case SWT.ESC:
//捕獲ESC鍵,返回到初始狀態(tài)
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;
}
}
});
//改變住院號后引發(fā)的監(jiān)視器
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("繳費(fèi)日期");
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("繳費(fèi)形式");
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("現(xiàn)金",0);
cobJFXS.add("支票",1);
cobJFXS.setEnabled(false);
Label labsfy = new Label(shell,SWT.None);
labsfy.setText("收費(fèi)員");
txtSFY = new Text(shell,SWT.BORDER);
txtSFY.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
txtSFY.setEnabled(false);
//數(shù)據(jù)庫獲得數(shù)據(jù)
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);
//增加金額框監(jiān)視器,讓保存按扭可用
txtJE.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
btnSAVE.setEnabled(true);
if(txtJE.getText()==""){
btnSAVE.setEnabled(false);
}
}
});
}
//////創(chuàng)建病人繳費(fèi)情況的控件組的函數(shù)實(shí)體//////////////////////////////
private void createGroup(){
groupFYQK = new Group(shell,SWT.SHADOW_ETCHED_IN);
groupFYQK.setText("病人繳費(fèi)及費(fèi)用發(fā)生情況");
//設(shè)置group顯示格式
GridData gridData0 = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gridData0.horizontalSpan=4;
groupFYQK.setLayoutData(gridData0);
//設(shè)置group布局
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 4;
groupFYQK.setLayout(gridLayout);
//添加各組件到group
Label labjfhj = new Label(groupFYQK,SWT.None);
labjfhj.setText("繳費(fèi)合計(jì) ");
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(" 費(fèi)用合計(jì) ");
txtFYHJ = new Text(groupFYQK,SWT.BORDER);
txtFYHJ.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
txtFYHJ.setEnabled(false);
}
///////////////////創(chuàng)建表格 //////////////////////////////////////////
private void createTable(){
table = new Table(shell,SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
//設(shè)置表格表頭可見
table.setHeaderVisible(true);
//設(shè)置表框線可見
table.setLinesVisible(true);
//設(shè)置表格填充格式為占據(jù)整行
GridData gridData1 = new GridData(GridData.FILL_BOTH);
gridData1.horizontalSpan =4;
table.setLayoutData(gridData1);
//調(diào)用創(chuàng)建列子函數(shù),分配資源,讓第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);
}
/////////////創(chuàng)建單選按鈕控件組///////////////////////////////
private void creategroupRADIO(){
groupRADIO = new Group(shell,SWT.SHADOW_ETCHED_IN);
//設(shè)置group顯示格式
GridData gridData0 = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gridData0.horizontalSpan=2;
groupRADIO.setLayoutData(gridData0);
//設(shè)置group布局
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 3;
groupRADIO.setLayout(gridLayout);
//下面是增加3個單選按鈕到groupRADIO
//增加病人費(fèi)用按鈕
radioBRFY = new Button(groupRADIO,SWT.RADIO);
radioBRFY.setText("病人費(fèi)用");
radioBRFY.setEnabled(false);
//增加病人費(fèi)用按鈕監(jiān)視器
radioBRFY.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
//如果第一列可見就先去掉全部列,然后創(chuàng)建第7-20列.
if(!col1.isDisposed())
{
//清除全部列
dispose2();
dispose1();
//創(chuàng)建7-20列
colBuild2();
}
//清除表格內(nèi)容
table.removeAll();
//把相應(yīng)數(shù)據(jù)庫數(shù)據(jù)填入表格
setTable(3);
}
});
//增加病人交費(fèi)按鈕
radioBRJF = new Button(groupRADIO,SWT.RADIO);
radioBRJF.setText("病人繳費(fèi)");
radioBRJF.setEnabled(false);
//增加病人交費(fèi)單選按鈕監(jiān)視器
radioBRJF.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
//如果第7-20列存在就先去掉全部列,再增加1-6列
if(!col7.isDisposed())
{//清除列函數(shù)
dispose2();
dispose1();
//創(chuàng)建1-6列函數(shù)
colBuild1();
}
// 清除表格內(nèi)容,從新裝入數(shù)據(jù)
table.removeAll();
setTable(2);
}
});
//增加應(yīng)上繳按鈕
radioYSJ = new Button(groupRADIO,SWT.RADIO);
radioYSJ.setText("應(yīng)上繳");
radioYSJ.setSelection(true);
//增加應(yīng)上繳按鈕監(jiān)視器
radioYSJ.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
if(!col7.isDisposed()){
dispose2();
dispose1();
colBuild1();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -