?? frmjbdm.java
字號:
package myprojects.FrmJBDM;
import org.eclipse.swt.events.*;
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import java.text.*;
import java.sql.*;
import myprojects.FrmJBDMDb.*;
import myprojects.FrmMenu.*;
public class FrmJBDM{
private Shell shell;
private Display display;
private Table tblIcd;
private Text txtNo;
private Text txtIcd;
private Text txtJbmc;
private Text txtSfmxb;
private Text txtSfdeb;
private Text txtJsde;
private Button btnAdd;
private Button btnSave;
private Button btnDelete;
private Button btnReturn;
private int piNo;
private FrmJBDMDb Db=new FrmJBDMDb();
public static void main(){
Display display=new Display();
FrmJBDM Item=new FrmJBDM();
Item.createShell();
while( !Item.shell.isDisposed())
{
if(!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
//----------------------------------------------------------
private void createShell(){
//創建窗體
shell=new Shell(display,SWT.MIN);
shell.setBounds(200,150,640,480);
shell.setText("疾病ICD代碼表維護");
GridLayout gridlayout=new GridLayout();
shell.setLayout(gridlayout);
gridlayout.numColumns=6;
createTable();
createWidgets();
shell.open();
createTableItem();
}
//-----------------------------------------------------------
private void createTable(){
//創建表格
tblIcd=new Table(shell,SWT.SINGLE|SWT.FULL_SELECTION|SWT.BORDER);
GridData griddata1 = new GridData(GridData.FILL_BOTH);
griddata1.horizontalSpan = 6;
tblIcd.setLayoutData(griddata1);
tblIcd.setHeaderVisible(true);
tblIcd.setLinesVisible(true);
TableColumn colNo = new TableColumn(tblIcd,SWT.LEFT);
TableColumn colIcd = new TableColumn(tblIcd,SWT.LEFT);
TableColumn colJbmc = new TableColumn(tblIcd,SWT.LEFT);
TableColumn colSfmxb = new TableColumn(tblIcd,SWT.LEFT);
TableColumn colSfdeb = new TableColumn(tblIcd,SWT.LEFT);
TableColumn colJsde = new TableColumn(tblIcd,SWT.LEFT);
colNo.setWidth(48);
colIcd.setText("ICD編號");
colIcd.setWidth(125);
colJbmc.setText("疾病名稱");
colJbmc.setWidth(180);
colSfmxb.setText("是否慢性病");
colSfmxb.setWidth(80);
colSfdeb.setText("是否大額病");
colSfdeb.setWidth(80);
colJsde.setText("結算定額");
colJsde.setWidth(90);
tblIcd.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent event) {
TableItem item=tblIcd.getItem(tblIcd.getSelectionIndex());
String[] values=new String [tblIcd.getColumnCount()];
for(int i=0;i<values.length;i++)
{
values[i]=item.getText(i);
}
txtIcd.setText(values[1]);
txtJbmc.setText(values[2]);
txtSfmxb.setText(values[3]);
txtSfdeb.setText(values[4]);
txtJsde.setText(values[5]);
txtIcd.setEditable(false);
txtNo.setText(values[0]);
btnDelete.setEnabled(true);
btnSave.setEnabled(false);
}
});
}
//-----------------------------------------------------------
private void createWidgets(){
//向Shell中添加控件
//添加文本框
GridData griddataNo=new GridData();
GridData griddataIcd=new GridData();
GridData griddataJbmc=new GridData();
GridData griddataSfmxb=new GridData();
GridData griddataSfdeb=new GridData();
GridData griddataJsde=new GridData();
//設置文本框的寬度
griddataNo.widthHint=40;
griddataIcd.widthHint=115;
griddataJbmc.widthHint=165;
griddataSfmxb.widthHint=70;
griddataSfdeb.widthHint=70;
griddataJsde.widthHint=80;
txtNo =new Text(shell,SWT.BORDER);
txtIcd =new Text(shell,SWT.BORDER);
txtJbmc =new Text(shell,SWT.BORDER);
txtSfmxb=new Text(shell,SWT.BORDER);
txtSfdeb=new Text(shell,SWT.BORDER);
txtJsde =new Text(shell,SWT.BORDER);
txtNo.setLayoutData(griddataNo);
txtIcd.setLayoutData(griddataIcd);
txtJbmc.setLayoutData(griddataJbmc);
txtSfmxb.setLayoutData(griddataSfmxb);
txtSfdeb.setLayoutData(griddataSfdeb);
txtJsde.setLayoutData(griddataJsde);
txtNo.setEnabled(false);
txtIcd.setEditable(false);
txtIcd.setTextLimit(20);
txtJbmc.setTextLimit(16);
txtSfmxb.setTextLimit(2);
txtSfdeb.setTextLimit(2);
//向文本框添加監聽器
//當文本框中內容發生變化時"保存"按鈕恢復可用狀態
txtJbmc.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
btnSave.setEnabled(true);
}
});
txtSfmxb.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
btnSave.setEnabled(true);
}
});
txtSfdeb.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
btnSave.setEnabled(true);
}
});
txtJsde.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
btnSave.setEnabled(true);
}
});
//添加標簽
GridData griddata0=new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
griddata0.horizontalSpan=6;
GridData griddata1=new GridData(GridData.BEGINNING);
griddata1.horizontalSpan=6;
final Label lbl0=new Label(shell,SWT.None);
lbl0.setLayoutData(griddata0);
lbl0.setText("ICD編號或疾病名稱為空則無效");
lbl0.setForeground(new Color(display,255,0,0));
final Label lbl1=new Label(shell,SWT.None);
lbl1.setLayoutData(griddata1);
lbl1.setText("ICD編號最多包括20個字母數字");
lbl1.setForeground(new Color(display,255,0,0));
//添加按鈕
GridData griddataCom=new GridData(GridData.HORIZONTAL_ALIGN_END);
griddataCom.horizontalSpan=6;
Composite com=new Composite(shell,SWT.None);
GridLayout layout=new GridLayout();
layout.numColumns=5;
com.setLayout(layout);
com.setLayoutData(griddataCom);
btnAdd=new Button(com,SWT.None);
btnSave=new Button(com,SWT.None);
btnDelete=new Button(com,SWT.None);
btnReturn=new Button(com,SWT.None);
btnAdd.setText("添加");
btnSave.setText("保存");
btnDelete.setText("刪除");
btnReturn.setText("返回");
btnSave.setEnabled(false);
btnDelete.setEnabled(false);
btnAdd.addSelectionListener(new SelectionAdapter(){
//添加"添加"按鈕監聽器
public void widgetSelected(SelectionEvent event){
txtIcd.setEditable(true);
btnDelete.setEnabled(false);
tblIcd.deselectAll();
txtIcd.setFocus();
txtNo.setText(String.valueOf(piNo));
txtIcd.setText("");
txtJbmc.setText("");
txtSfmxb.setText("");
txtSfdeb.setText("");
txtJsde.setText("");
}
});
btnSave.addSelectionListener(new SelectionAdapter(){
//添加"保存"按鈕監聽器
public void widgetSelected(SelectionEvent event){
if(txtIcd.getText().trim().equals("")||txtJbmc.getText().trim().equals(""))
{
MessageBox msg = new MessageBox(shell,SWT.OK|SWT.ICON_INFORMATION);
msg.setText("提示");
msg.setMessage("ICD編號和疾病名稱不能為空!");
msg.open();
return;
}
if(Integer.parseInt(txtNo.getText())==piNo)//piNo為表的最大行號+1
{//若文本框中的序號與piNo相等 則該項是新添的
MessageBox msgInsert = new MessageBox(shell,SWT.YES|SWT.NO|SWT.ICON_QUESTION);
msgInsert.setText("保存");
msgInsert.setMessage("確定添加此記錄嗎?");
int liInsert = msgInsert.open();
if(liInsert==SWT.NO)
return;
int insertCount = Db.insertJBDM(txtIcd.getText(),txtJbmc.getText(),
txtSfmxb.getText(),txtSfdeb.getText(),txtJsde.getText());
if(insertCount==1)
{
TableItem newItem=new TableItem(tblIcd,SWT.None);
newItem.setText(new String[]{txtNo.getText(),txtIcd.getText(),
txtJbmc.getText(),txtSfmxb.getText(),txtSfdeb.getText(),txtJsde.getText()});
tblIcd.setSelection(tblIcd.getItemCount()-1);
tblIcd.setFocus();
txtIcd.setEditable(false);
btnDelete.setEnabled(true);
//成功插入一條記錄后記錄行號的piNo的值+1
piNo++;
//System.out.println(count);
}
else
{
MessageBox msgInsertErro=new MessageBox(shell,SWT.OK|SWT.ICON_INFORMATION);
msgInsertErro.setText("錯誤");
msgInsertErro.setMessage("保存數據出錯\n"+"\n新數據未保存!");
msgInsertErro.open();
return;
}
}
else
{
MessageBox msgUpdate=new MessageBox(shell,SWT.YES|SWT.NO|SWT.ICON_QUESTION);
msgUpdate.setText("提示");
msgUpdate.setMessage("確定對數據更新嗎?");
int liReturn=msgUpdate.open();
if(liReturn==SWT.NO)
return;
int updateCount = Db.updateJBDM(txtIcd.getText(),txtJbmc.getText(),
txtSfmxb.getText(),txtSfdeb.getText(),txtJsde.getText());
if(updateCount==1)
{
TableItem updateItem = tblIcd.getItem(tblIcd.getSelectionIndex());
updateItem.setText(2,txtJbmc.getText());
updateItem.setText(3,txtSfmxb.getText());
updateItem.setText(4,txtSfdeb.getText());
updateItem.setText(5,txtJsde.getText());
tblIcd.setFocus();
}
else
{
MessageBox updateErroMb=new MessageBox(shell,SWT.OK|SWT.ICON_INFORMATION);
updateErroMb.setText("錯誤");
updateErroMb.setMessage("更新數據出錯\n"+"\n數據未被更新!");
updateErroMb.open();
}
}
btnSave.setEnabled(false);
}
});
btnDelete.addSelectionListener(new SelectionAdapter(){
//添加"刪除"按鈕監聽器
public void widgetSelected(SelectionEvent event){
MessageBox messageBox = new MessageBox(shell,SWT.YES|SWT.NO|SWT.ICON_QUESTION);
messageBox.setText("提示");
messageBox.setMessage("確定刪除此項記錄嗎?");
int liReturn= messageBox.open();
if(liReturn==SWT.NO)
return;
int count = Db.delJBDM(txtIcd.getText());
System.out.println(count);
if(count>0)
{
tblIcd.remove(tblIcd.getSelectionIndex());
txtNo.setText("");
txtIcd.setText("");
txtJbmc.setText("");
txtSfmxb.setText("");
txtSfdeb.setText("");
txtJsde.setText("");
btnDelete.setEnabled(false);
btnSave.setEnabled(false);
}
else
{
MessageBox msgBox=new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
msgBox.setText("錯誤");
msgBox.setMessage("刪除數據失敗!");
msgBox.open();
}
}
});
btnReturn.addSelectionListener(new SelectionAdapter(){
//添加"返回"按鈕監聽器
//返回菜單
public void widgetSelected(SelectionEvent event){
shell.getDisplay().dispose();
shell.dispose();
FrmMenu.main();
return;
}
});
}
//-------------------------------------------------------------
private void createTableItem(){
piNo=1;
try{
//數據連接
if(!Db.getConnection())
{
btnAdd.setEnabled(false);
txtJbmc.setEnabled(false);
txtSfmxb.setEnabled(false);
txtSfdeb.setEnabled(false);
txtJsde.setEnabled(false);
MessageBox msgBox=new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
msgBox.setText("錯誤");
msgBox.setMessage("連接數據庫失敗");
msgBox.open();
return;
}
}
catch(Exception e){
System.err.println(e.getMessage());
}
if(!Db.getJBDM())
{
MessageBox msg=new MessageBox(shell,SWT.OK|SWT.ICON_INFORMATION);
msg.setText("錯誤");
msg.setMessage("查詢數據庫失敗");
msg.open();
return;
}
try{
while(Db.rs.next())
{
final TableItem item=new TableItem(tblIcd,SWT.None);
String strIcd =Db.rs.getString("ICD");
String strJbmc=Db.rs.getString("JBMC");
String strSfmx=Db.rs.getString("SFMX");
String strSfde=Db.rs.getString("SFDE");
float Jsde=Db.rs.getFloat("JSDE");
item.setText(new String[]{String.valueOf(piNo),strIcd,
strJbmc,strSfmx,strSfde,String.valueOf(Jsde) });
piNo++;
}
}
catch(SQLException e){
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -