石家庄职业技术学院课程论文 第三章 系统的程序设计与实现
所有库存商品的数量。价格调整可以修改商品的单价,其操作会修改库存表中对应商品的价格。
系统管理负责登录用户的管理。系统管理员身份的用户具有增加、修改和删除操作员的功能,修改密码的功能,还具有修改用户的权限的功能。而操作员身份的用户仅具有修改自身密码的功能。
3.2各功能模块的设计和实现 3.2.1登录界面
登录界面用户验证登录用户的身份信息,只有合法的用户才能进入系统,从而保证系统的安全性。
登录界面的运行结果如下图3-1所示:
图3-1 登录界面
登录界面的创建:
创建Login类,它继承自JFrame。用户名和密码通过JtextField接收,单击“登录”按钮触发监听器验证登录用户是否正确,该过程通过连接数据库,判断用户是否存在数据表Userlist表中来实现。关键代码如下:
public void login_Button(ActionEvent e) {
if(userName.getText().equals(\
8
石家庄职业技术学院课程论文 第三章 系统的程序设计与实现
{
JOptionPane.showMessageDialog(this, \用户名不能为空\return; }
else if(userPassword.getText().equals(\
userPassword.getText()==null)
{
{
user = DAO.getUser(userName.getText(), userPassword.getText()); if (user.getUsername()==null || user.getUsername().equals(\ {
JOptionPane.showMessageDialog(this, \用户名或密码错误%userName.setText(null); userPassword.setText(null); return; {
setVisible(false);
MainFrame frame=new MainFrame(); }
} } else
JOptionPane.showMessageDialog(this, \密码不能为空\return; }
else
}
连接数据库的方法:
由于系统对数据库的存取比较频繁,因此可以定义一个公共类DAO类来负责有关数据库的操作。关键代码如下:
/*** 连接数据库操作 */
protected static String MysqlClassName =
9
石家庄职业技术学院课程论文 第三章 系统的程序设计与实现
\驱动
protected static String MysqlUrl =
protected static String MysqlUser = \用户名 protected static String MysqlPwd = \密码 protected static String second = null; public static Connection conn = null; static { }
try { }
if (conn == null) { }
ee.printStackTrace();
Class.forName(MysqlClassName).newInstance(); conn = DriverManager.getConnection(MysqlUrl,
MysqlPwd);
\
MysqlUser,
} catch (Exception ee) {
3.2.2系统主窗体
应用程序的主窗体必须设计层次清晰的系统菜单和工具栏,其中系统菜单包含系统中所有的菜单项,而工具栏主要提供常用功能快捷访问按钮。本系统主窗体采用导航面板综合了系统菜单和工具栏的优点,而且导航面板的界面更加美观,操作快捷。主窗体的界面如图3-2所示。
10
石家庄职业技术学院课程论文 第三章 系统的程序设计与实现
图3-2 系统主窗体
创建主窗体
创建主窗体的步骤如下:
(1)创建JXFrame类,在类中创建并初始化窗体对象,为窗体添加桌面面板,并设置背景图片。关键代码如下:
private JDesktopPane desktopPane; private JFrame frame;
private JLabel backLabel; // 创建窗体的Map类型集合对象
private Map
frame=new JFrame(\企业进销存管理系统\创建窗体对象
frame.getContentPane().setBackground(new Color(170,188,120));
frame.addComponentListener(new FrameListener());//添加窗体事件监听器 frame.getContentPane().setLayout(new BorderLayout());//设置布局管理器 frame.setBounds(100, 100, 900, 700);
backLabel=new JLabel();//背景标签
backLabel.setVerticalAlignment(SwingConstants.TOP);//设置背景标签垂直
对齐方式
11
石家庄职业技术学院课程论文 第三章 系统的程序设计与实现
backLabel.setHorizontalAlignment(SwingConstants.CENTER);//设置背景标签
水平对齐方式 updateBackImage();//更新或初始化背景图片
desktopPane=new JDesktopPane();//创建桌面面板
desktopPane.add(backLabel,new Integer(Integer.MIN_VALUE));//将背景标签frame.getContentPane().add(desktopPane);//添加桌面面板到窗体中
JTabbedPane navigationPanel=createNavigationPanel();//创建导航标签面板
添加到桌面面板中
frame.getContentPane().add(navigationPanel,BorderLayout.NORTH);//添加导航面板到窗体中
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);//显示窗体
(2)编写主窗体的main()入口方法,在该方法中创建登陆窗体对象,登陆窗体会验证登陆信息,并显示主窗体界面。关键代码入下: public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Login();
} }); }
创建导航面板
创建导航面板的实现方法:
在该方法中创建JtabbedPane选项卡面板对象。为突出选项卡的立体效果,设置该选项卡使用BevelBorder边框效果,然后依次创建基础信息管理、库存管理、销售管理、查询统计、进货管理和系统管理的选项卡。关键代码及注释如下:
private JTabbedPane createNavigationPanel() {// 创建导航标签面板的方法
Userlist user = Login.getUser();
JTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.setFocusable(false);
tabbedPane.setBackground(new Color(211,230,192));
tabbedPane.setBorder(new BevelBorder(BevelBorder.RAISED));
JPanel baseMainPanel=new JPanel();//基础信息管理面板 baseMainPanel.setBackground(new Color(215,223,194));
baseMainPanel.setLayout(new BoxLayout(baseMainPanel,BoxLayout.X_AXIS)); stateBar.setHorizontalAlignment(SwingConstants.RIGHT); stateBar.setBorder(BorderFactory.createEtchedBorder()); frame.getContentPane().add(stateBar,BorderLayout.SOUTH);
12