📄 frmuser.java
字号:
//包
package myprojects.FrmUser;
/*
*<p>用户信息维护FrmUser.java</p>
*<p>Copyright:李 飙 Copyright(c)2005</p>
*<p>Corp:cuit</p>
*@by:李 飙
*/
//引入软件信息维护数据库文件
import myprojects.FrmUserDb.*;
import myprojects.FrmMenu.*;
//引用时间包
import java.util.Date;
import java.text.SimpleDateFormat;
//引用SWT包
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
//引入SQL包
import java.sql.*;
//申明类
public class FrmUser
{
//定义SHELL类对象
private Shell shell;
//定义显示类对象
private Display display;
//定义字体
private static Font font;
//实例化FrmUserDb
private static FrmUserDb db = new FrmUserDb();
//申明提示LABEL框
Label lblTS;
//申明四个BUTTON按钮
Button btnSC;
Button btnBC;
Button btnFQ;
Button btnFH;
//申明四个TEXT框
Text txtUserID;
Text txtUserXM;
Text txtUserDH;
Text txtUserZZ;
//申明两个COMBO框
Combo cmbUserLB;
Combo cmbSFTF;
//主函数
public static void main()
{
//申明显示对象并申请空间
Display display =new Display();
//定义对象并申请空间
FrmUser item = new FrmUser();
//调用createshell方法
item.createShell();
//循环判断是否关闭窗口
while(!item.shell.isDisposed())
{
if(!display.readAndDispatch())
display.sleep();
}
//判断字体是否为空
if(font!=null)
{
font.dispose();
display.dispose();
}
}
/*
* 函数名:createShell
* 编写者:李 飙
* 功 能:创建窗体类
* 输入参数:无
* 输出参数:无返回类型
* 备 注:无
*/
//申明createshell方法
public void createShell()
{
//创建对话框风格的窗口
shell=new Shell(display,SWT.DIALOG_TRIM | SWT.MIN);
//定义窗口大小
shell.setSize(410,260);
shell.setLocation(300,120);
//窗体名字
shell.setText("用户信息");
//创建数据库连接
if(!db.getConnection())
{
//创建消息框
MessageBox msBox = new MessageBox(shell,SWT.OK | SWT.ICON_ERROR);
//设置窗体名
msBox.setText("错误");
//提示消息
msBox.setMessage("连接数据库出错");
//打开消息框
msBox.open();
return;
}
/////////非常重要,布局
//申明窗体的布局
GridLayout gridLayout1 = new GridLayout();
//把窗口分为4列
gridLayout1.numColumns = 4;
//设置窗体布局
shell.setLayout(gridLayout1);
//调用createItem方法
createItem();
//调用createCom方法
createKb();
//设置初始画面
createCom();
setCSEnabled();
//打开窗体
shell.open();
}
/*
* 函数名:createItem
* 编写者:李 飙
* 功 能:创建窗体显示控件及空间监视器
* 输入参数:无
* 输出参数:无返回类型
* 备 注:无
*/
////标签
//方法
public void createItem()
{
//申明布局
GridData gridData1 ;
//设置布局的对齐方式
gridData1 = new GridData(GridData.FILL_HORIZONTAL);
gridData1.horizontalAlignment = GridData.CENTER;
gridData1.grabExcessHorizontalSpace = true;
//设置布局高度
gridData1.heightHint = 25;
//设置布局所占格数
gridData1.horizontalSpan = 2;
gridData1.verticalSpan = 1;
//申明布局
GridData gridData2 = new GridData();
gridData2.horizontalAlignment= GridData.CENTER;
gridData2.horizontalSpan = 4;
gridData2.heightHint = 20;
GridData gridData5 ;
//申明布局
gridData5 = new GridData(GridData.FILL_HORIZONTAL);
//设置布局的对齐方式
gridData5.horizontalAlignment = GridData.END;
gridData5.grabExcessHorizontalSpace = true;
//设置布局高度
gridData5.heightHint = 25;
//设置布局所占格数
gridData5.horizontalSpan = 2;
gridData5.verticalSpan =2;
lblTS = new Label(shell,SWT.LEFT);
lblTS.setForeground(new Color(display,0,0,255));
lblTS.setLayoutData(gridData1);
//申明LABLE框和显示风格
Label lblTime = new Label(shell,SWT.CENTER);
// //申明时间对象空间
// Date nowTime = new Date();
// //申明简单时间表示对象
// SimpleDateFormat timeFormat;
// timeFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss ");
// //显示时间
// lblTime.setText(timeFormat.format(nowTime));
//调用方法,得到数据库系统的时间
lblTime.setText(db.getNowTime());
//显示字体
lblTime.setFont(new Font (display, "NONE", 10, SWT.NORMAL));
//设置显示字体的颜色
lblTime.setForeground(new Color(display,0,0,0));
//应用布局方案
lblTime.setLayoutData(gridData5);
//申明LABLE框和显示风格
Label lblWelcome = new Label(shell,SWT.CENTER);
//显示内容
lblWelcome.setText("软件用户信息维护");
//显示字体
lblWelcome.setFont(new Font (display, "NONE", 13, SWT.NORMAL));
//设置颜色
lblWelcome.setForeground(new Color(display,255,0,0));
//应用布局方案
lblWelcome.setLayoutData(gridData2);
//设置布局gridData4
GridData gridData4 = new GridData(GridData.FILL_HORIZONTAL);
gridData4.horizontalAlignment = GridData.END;
gridData4.grabExcessHorizontalSpace = true;
gridData4.heightHint = 10;
gridData4.horizontalSpan = 4;
gridData4.verticalSpan =2;
//设置一个空LABEL
Label lblKB = new Label(shell,SWT.CENTER);
lblKB.setText("");
lblKB.setLayoutData(gridData4);
//申明LABLE框和显示风格
Label lblUserID = new Label(shell,SWT.LEFT);
lblUserID.setText(" 用户编号");
//设置布局
lblUserID.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
//创建TEXT框和风格
txtUserID = new Text(shell, SWT.BORDER);
//申明LABLE框和显示风格
Label lblUserXM = new Label(shell,SWT.LEFT);
lblUserXM.setText("用户姓名");
lblUserXM.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
//创建TEXT框及风格
txtUserXM = new Text(shell, SWT.BORDER);
//申明LABLE框和显示风格
Label lblUserDH = new Label(shell,SWT.LEFT);
lblUserDH.setText(" 联系电话");
//创建TEXT框及风格
txtUserDH = new Text(shell, SWT.BORDER);
//申明LABLE框和显示风格
Label lblUserZZ = new Label(shell,SWT.CENTER);
lblUserZZ.setText("住址");
//创建TEXT框和风格
txtUserZZ = new Text(shell, SWT.BORDER);
//申明LABLE框和显示风格
Label lblUserLB = new Label(shell,SWT.LEFT);
lblUserLB.setText(" 用户类型");
//创建COMBO下拉列表框
cmbUserLB = new Combo(shell, SWT.BORDER | SWT.READ_ONLY);
cmbUserLB.add("");
//调用此方法得到用户类型
getUserLB();
//申明LABLE框和显示风格
Label lblSFTF = new Label(shell,SWT.CENTER);
lblSFTF.setText("是否有收费权限");
//创建COMBO下拉列表框
cmbSFTF = new Combo(shell, SWT.BORDER | SWT.READ_ONLY);
cmbSFTF.add("");
//调用此方法得到用户的收费权限的所有可能
getSFTF();
//对txtUserId添加按下键盘监视器
txtUserID.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent event)
{
//判断按下什么键
if (event.keyCode == SWT.CR | event.keyCode == SWT.KEYPAD_CR)
{
//当调用此方法查询指定用户
txtListener();
}
}
});
}
/*
* 函数名:createCom
* 编写者:李 飙
* 功 能:创建Composite控件组
* 输入参数:无
* 输出参数:无返回类型
* 备 注:无
*/
public void createCom()
{
//设置布局
GridData gridData3 = new GridData(GridData.FILL_HORIZONTAL);
gridData3.horizontalAlignment = GridData.END;
gridData3.grabExcessHorizontalSpace = true;
gridData3.horizontalSpan = 2;
//申明COMPOSITE组及在SHELL中的布局
Composite composite = new Composite(shell,SWT.None);
//申明composite的布局
GridLayout gridLayout2 = new GridLayout();
//设置composite的格数
gridLayout2.numColumns = 4;
//设置布局方式
composite.setLayout(gridLayout2);
composite.setLayoutData(gridData3);
//申明BUTTON按钮并在COMPOSITE中显示
btnBC= new Button(composite,SWT.None);
btnBC.setText("保 存");
//添加监视器
btnBC.addSelectionListener(new SelectionAdapter()
{
//双击事件,调用save()方法
public void widgetSelected(SelectionEvent event)
{
//调用保存方法
save();
}
});
//申明BUTTON按钮并在COMPOSITE中显示
btnFQ = new Button(composite,SWT.None);
btnFQ.setText("放 弃");
//添加监视器
btnFQ.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent event)
{
//用户编号框可用
txtUserID.setEnabled(true);
//调用此方法返回初始画面
setCSEnabled();
}
});
//申明BUTTON按钮并在COMPOSITE中显示
btnSC = new Button(composite,SWT.None);
btnSC.setText("删 除");
//添加监视器
btnSC.addSelectionListener(new SelectionAdapter()
{
//双击事件,调用delete方法
public void widgetSelected(SelectionEvent event)
{
//调用delete,删除用户
delete();
}
});
//申明BUTTON按钮并在COMPOSITE中显示
btnFH = new Button(composite,SWT.None);
btnFH.setText("返 回");
//添加监视器
btnFH.addSelectionListener(new SelectionAdapter()
{
//双击事件
public void widgetSelected(SelectionEvent event)
{
FrmMenu frmMenu= new FrmMenu();
//销毁
shell.getDisplay().dispose();
//销毁本窗体
shell.dispose();
//调用菜单窗体
frmMenu.main();
return;
}
});
}
/*
* 函数名:txtListener
* 编写者:李 飙
* 功 能:从数据库中取得用户的信息,此为TXET框监视器所调用的方法
* 输入参数:无
* 输出参数:无返回类型
* 备 注:无
*/
private void txtListener()
{
//try,catch块
try
{
//申明一个字符串接收编号框的文本
String getText = txtUserID.getText();
if(check(getText))
{
//报错提示消息
checkBox("编号框内输入了非法字符英文状态下的单引号");
//设置焦点
txtUserID.setFocus();
txtUserID.selectAll();
}
else
{
//判断有无输入,没有则提示
if(getText == "")
{
MessageBox inputJCBox = new MessageBox(shell,SWT.ICON_INFORMATION | SWT.OK);
inputJCBox.setText("警告");
inputJCBox.setMessage("您没有输入用户编号!");
inputJCBox.open();
}
//有值则进数据库查询
else
{
//调用getUserId方法
int temp=db.getUserInfo(getText);
if(temp == 0)
{
//判断是否有该用户,没有则提示重新输入
MessageBox msBox = new MessageBox(shell,SWT.OK | SWT.ICON_ERROR);
msBox.setText("错误!");
msBox.setMessage("查询数据库出错");
msBox.open();
return;
}
else
{
if(db.rs.next())
{
//取得字段的值并赋给txtUserXM框
txtUserXM.setText(db.rs.getString("UserXM"));
if(db.rs.getString("UserDH") == null)
//取得字段的值并赋给txtUserDH框
txtUserDH.setText("");
else
txtUserDH.setText(db.rs.getString("UserDH"));
if(db.rs.getString("UserLB") == null)
cmbUserLB.select(0);
else
//取得字段的值并赋给cmbUserLB框
cmbUserLB.setText(db.rs.getString("UserLB"));
if(db.rs.getString("UserZZ") == null)
txtUserZZ.setText("");
else
//取得字段的值并赋给txtUserZZ框
txtUserZZ.setText(db.rs.getString("UserZZ"));
//判断
if(db.rs.getString("SFTF") == null)
//取得字段的值并赋给cmbSFTF框
cmbSFTF.setText("未定义");
else
{
if(Integer.parseInt(db.rs.getString("SFTF")) == 1)
//判断如果是1则添加"是"
cmbSFTF.setText("是");
else
//判断如果是0则添加"否"
cmbSFTF.setText("否");
}
//调用此方法设置控件能否使用
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -