?? 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 + -