?? frmclsz.java
字號:
/**
*本類用于系統(tǒng)常量設置窗體的生成,生成時提取ZYSFDB數(shù)據(jù)庫中的Constants數(shù)據(jù)表中的數(shù)據(jù)對窗體
*數(shù)據(jù)進行初始化。
*編寫者:劉鳳勇
*編寫日期:2005-09-17
*備注:
**/
package myprojects.FrmCLSZ;
import java.sql.*;
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.io.*;
import myprojects.FrmMenu.*;
import myprojects.frmCLSZDb.FrmCLSZDb;
public class FrmCLSZ
{
private Display display;
private Shell shell;
private static Font font;
private Table tblXTSZNR; //用于構造系統(tǒng)設置內容
private Combo cmbYPJX; //用于構造系統(tǒng)藥品劑型下拉列表框
private Text txtSZNR; //用于輸入新增設置內容
private Button btnUp,btnDown,btnAdd,btnSave,btnReturn;
private Label lblDisplay;
private FrmCLSZDb dbCon = new FrmCLSZDb();
/**
*函數(shù)名:run
*編寫者:劉鳳勇
*功 能:創(chuàng)建frmCLSZ窗體的外部調用接口
*輸入?yún)?shù):無
*返回值類型:無
*備 注:
**/
public void run()
{
Display display = new Display();
createShell();
while(!shell.isDisposed())
{
if(!display.readAndDispatch())
{
display.sleep();
}
}
if (font != null)
font.dispose(); //釋放字體資源
display.dispose(); //釋放窗體資源
}
/**
*函數(shù)名:createShell
*編寫者:劉鳳勇
*功 能:初始化一個系統(tǒng)常量設置窗體
*輸入?yún)?shù):無
*返回值類型:無
*備 注:
**/
public void createShell()
{
shell = new Shell(display,SWT.TITLE|SWT.BORDER);
shell.setSize(400,400);
shell.setText("系統(tǒng)設置");
//為Shell窗體設置顯示布局
GridLayout shell_GridLayout = new GridLayout();
shell_GridLayout.numColumns = 2;
shell.setLayout(shell_GridLayout);
shell.setSize(new org.eclipse.swt.graphics.Point(355,369));
if(dbCon.getConnection()) //嘗試連接數(shù)據(jù)庫
{
createLeftComposite();
createRightComposite();
shell.open();
}
else
{
//彈出一個數(shù)據(jù)庫連接錯誤提示窗體
MessageBox msgDbConError = new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
msgDbConError.setText("錯誤!");
msgDbConError.setMessage("數(shù)據(jù)庫連接操作失敗,無法正確運行該程序!");
msgDbConError.open();
return;
}
}
/**
*函數(shù)名:createLeftComposite
*編寫者:劉鳳勇
*功 能:創(chuàng)建系統(tǒng)常量設置窗體里面的左邊部分
*輸入?yún)?shù):無
*返回值類型:無
*備 注:
**/
public void createLeftComposite()
{
Composite comLeft = new Composite(shell, SWT.NONE);
//設置comLeft在窗體中的布局
GridData comLeft_GridData = new GridData(GridData.FILL_VERTICAL);
comLeft_GridData.horizontalSpan = 1;
comLeft.setLayoutData(comLeft_GridData);
//設置comLeft自身的布局
GridLayout comLeftLayout = new GridLayout();
comLeftLayout.numColumns=1;
comLeft.setLayout(comLeftLayout);
//向comLeft中添加一個表格
tblXTSZNR=new Table(comLeft,SWT.MULTI| SWT.BORDER | SWT.FULL_SELECTION);
tblXTSZNR.setHeaderVisible(true);
tblXTSZNR.setLinesVisible(true);
//為表格tbXTSZNR在窗體中的顯示布局
GridData tblXTSZNR_GridData = new GridData(GridData.FILL_VERTICAL);
tblXTSZNR_GridData.widthHint = 110;
tblXTSZNR.setLayoutData(tblXTSZNR_GridData);
//設置表格tbXTSZNR中的列名
TableColumn colTblXTSZNR = new TableColumn(tblXTSZNR,SWT.CENTER);
colTblXTSZNR.setText("設置內容");
colTblXTSZNR.setWidth(127);
tblXTSZNR.setEnabled(false);
//為表格增加事件監(jiān)聽器
tblXTSZNR.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
txtSZNR.setVisible(false);
btnUp.setEnabled(true);
lblDisplay.setVisible(true);
btnDown.setEnabled(true);
}
});
//向comLeft添加一個Text文本框
txtSZNR = new Text(comLeft, SWT.BORDER);
GridData txtSZNR_GridData = new GridData(GridData.FILL_HORIZONTAL);
txtSZNR.setLayoutData(txtSZNR_GridData);
txtSZNR.setVisible(false);
//為文本框txtSZNR增加一個鍵盤事件監(jiān)聽器
txtSZNR.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if (e.keyCode == SWT.CR) //檢測按鍵是不是ENTER鍵
{
String txtSZNRContent = txtSZNR.getText();
if(!txtSZNRContent.equals("")) //檢測字符串是否為空
{
//檢查txtSZNR文本框中輸入字符串的長度是否小于30個字節(jié)以及是否含有特殊字符
if(txtSZNRContent.length() < 30&&CheckInContent(txtSZNRContent))
{
btnSave.setVisible(true);
btnSave.setEnabled(true);
TableItem itemTblXTSZNR = new TableItem(tblXTSZNR,0);
itemTblXTSZNR.setText((txtSZNR.getText()).trim());
txtSZNR.setText("");
}
else
{
//如果txtSZNR文本框輸入的字符串不符合系統(tǒng)檢測規(guī)則,則彈出該對話框
MessageBox msgTxtSZNRError = new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
msgTxtSZNRError.setText("錯誤!");
msgTxtSZNRError.setMessage("您輸入的字符串超過限制長度或含有特殊字符!");
msgTxtSZNRError.open();
txtSZNR.setText("");
return;
}
}
else
{
//如果txtSZNR文本框輸入的字符串長度不符合系統(tǒng)檢測規(guī)則,則彈出該對話框
MessageBox msgTxtSZNRError = new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
msgTxtSZNRError.setText("錯誤!");
msgTxtSZNRError.setMessage("您輸入的字符串為空!");
msgTxtSZNRError.open();
return;
}
}
}
});
}
/**
*函數(shù)名:createRightComposite
*編寫者:劉鳳勇
*功 能:創(chuàng)建系統(tǒng)常量設置窗體里面的右邊部分
*輸入?yún)?shù):無
*返回值類型:無
*備 注:
**/
public void createRightComposite()
{
Composite comRight = new Composite(shell, SWT.NONE);
//設置comRight在窗體中的布局
GridData comRight_GridData = new GridData(GridData.FILL_BOTH);
comRight_GridData.horizontalSpan = 1;
comRight.setLayoutData(comRight_GridData);
//設置comRight自身的布局
GridLayout comRightLayout = new GridLayout();
comRightLayout.numColumns = 3;
comRight.setLayout(comRightLayout);
//向comRight中添加一個下拉列表框cmbYPJX
final Combo cmbYPJX = new Combo(comRight,SWT.None);
GridData CmbYPJX_GridData = new GridData(GridData.FILL_HORIZONTAL);
CmbYPJX_GridData.grabExcessHorizontalSpace=true;
CmbYPJX_GridData.horizontalSpan = 3;
cmbYPJX.setLayoutData(CmbYPJX_GridData);
//添加下拉列表框cmbYPJX的監(jiān)聽器
cmbYPJX.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
String type = cmbYPJX.getText(); //獲取填充表格數(shù)據(jù)的查詢條件
tblXTSZNR.removeAll();
tblXTSZNR.setEnabled(true);
tblXTSZNR.setVisible(true);
btnAdd.setVisible(true);
btnUp.setEnabled(false);
btnUp.setVisible(true);
btnDown.setEnabled(false);
btnDown.setVisible(true);
lblDisplay.setVisible(true);
btnSave.setVisible(true);
btnSave.setEnabled(false);
try
{
ResultSet rs = dbCon.getTableInitalData(type); //獲取ResultSet數(shù)組的元組填充tbXTSZNR表
while(rs.next())
{
TableItem itemTblXTSZNR = new TableItem(tblXTSZNR,0);
itemTblXTSZNR.setText(rs.getString("Constant"));
}
}
catch(Exception e1)//捕獲異常
{
MessageBox msgDbConError = new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
msgDbConError.setText("錯誤!");
msgDbConError.setMessage("數(shù)據(jù)庫查詢操作失敗,無法正確運行該程序!");
msgDbConError.open();
System.out.println(e1.getMessage());
e1.printStackTrace();
return;
}
}
});
//獲取數(shù)據(jù)表中的數(shù)據(jù)初始化下拉列表框體數(shù)據(jù)
try
{
ResultSet rs = dbCon.getComboInitalData();
while(rs.next())
{
cmbYPJX.add(rs.getString("Type")); //為下拉列表框cmbYPJX添加選項
}
}
catch(Exception e) //捕獲異常
{
MessageBox msgDbConError = new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
msgDbConError.setText("錯誤!");
msgDbConError.setMessage("數(shù)據(jù)庫查詢操作失敗,無法正確運行該程序!");
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -