📄 frmclsz.java
字号:
/**
*本类用于系统常量设置窗体的生成,生成时提取ZYSFDB数据库中的Constants数据表中的数据对窗体
*数据进行初始化。
*编写者:刘凤勇
*编写日期: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; //用于构造系统设置内容
private Combo cmbYPJX; //用于构造系统药品剂型下拉列表框
private Text txtSZNR; //用于输入新增设置内容
private Button btnUp,btnDown,btnAdd,btnSave,btnReturn;
private Label lblDisplay;
private FrmCLSZDb dbCon = new FrmCLSZDb();
/**
*函数名:run
*编写者:刘凤勇
*功 能:创建frmCLSZ窗体的外部调用接口
*输入参数:无
*返回值类型:无
*备 注:
**/
public void run()
{
Display display = new Display();
createShell();
while(!shell.isDisposed())
{
if(!display.readAndDispatch())
{
display.sleep();
}
}
if (font != null)
font.dispose(); //释放字体资源
display.dispose(); //释放窗体资源
}
/**
*函数名:createShell
*编写者:刘凤勇
*功 能:初始化一个系统常量设置窗体
*输入参数:无
*返回值类型:无
*备 注:
**/
public void createShell()
{
shell = new Shell(display,SWT.TITLE|SWT.BORDER);
shell.setSize(400,400);
shell.setText("系统设置");
//为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()) //尝试连接数据库
{
createLeftComposite();
createRightComposite();
shell.open();
}
else
{
//弹出一个数据库连接错误提示窗体
MessageBox msgDbConError = new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
msgDbConError.setText("错误!");
msgDbConError.setMessage("数据库连接操作失败,无法正确运行该程序!");
msgDbConError.open();
return;
}
}
/**
*函数名:createLeftComposite
*编写者:刘凤勇
*功 能:创建系统常量设置窗体里面的左边部分
*输入参数:无
*返回值类型:无
*备 注:
**/
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);
//为表格增加事件监听器
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增加一个键盘事件监听器
txtSZNR.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if (e.keyCode == SWT.CR) //检测按键是不是ENTER键
{
String txtSZNRContent = txtSZNR.getText();
if(!txtSZNRContent.equals("")) //检测字符串是否为空
{
//检查txtSZNR文本框中输入字符串的长度是否小于30个字节以及是否含有特殊字符
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文本框输入的字符串不符合系统检测规则,则弹出该对话框
MessageBox msgTxtSZNRError = new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
msgTxtSZNRError.setText("错误!");
msgTxtSZNRError.setMessage("您输入的字符串超过限制长度或含有特殊字符!");
msgTxtSZNRError.open();
txtSZNR.setText("");
return;
}
}
else
{
//如果txtSZNR文本框输入的字符串长度不符合系统检测规则,则弹出该对话框
MessageBox msgTxtSZNRError = new MessageBox(shell,SWT.OK|SWT.ICON_ERROR);
msgTxtSZNRError.setText("错误!");
msgTxtSZNRError.setMessage("您输入的字符串为空!");
msgTxtSZNRError.open();
return;
}
}
}
});
}
/**
*函数名:createRightComposite
*编写者:刘凤勇
*功 能:创建系统常量设置窗体里面的右边部分
*输入参数:无
*返回值类型:无
*备 注:
**/
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的监听器
cmbYPJX.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
String type = cmbYPJX.getText(); //获取填充表格数据的查询条件
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数组的元组填充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("数据库查询操作失败,无法正确运行该程序!");
msgDbConError.open();
System.out.println(e1.getMessage());
e1.printStackTrace();
return;
}
}
});
//获取数据表中的数据初始化下拉列表框体数据
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("数据库查询操作失败,无法正确运行该程序!");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -