item[i]=builedAdminMenuItem(adminMenu,itemString[i],itemPanel[i]);
//3."帮助"菜单
JMenuhelpMenu=newJMenu("帮助");
JMenuItemhelpItem=newJMenuItem("帮助容");
helpMenu.add(helpItem);
helpItem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
JOptionPane.showMessageDialog(TestFrame.this,"运行程序后,看相应的代码");
}
});
//4.创建菜单条,添加菜单
JMenuBarbar=newJMenuBar();
setJMenuBar(bar);
bar.add(loginMenu);
bar.add(adminMenu);
bar.add(helpMenu);
//5.窗口中间放置桌面面板,用来显示部窗口
theDesktop=newJDesktopPane();
getContentPane().add(theDesktop,BorderLayout.CENTER);
setSize(800,600);
setVisible(true);
}
//创建菜单项的通用方法:
参数menu是菜单项所添加在其上的菜单;
//参数itemName是菜单项的名字,因其在匿名部类对象中引用,必须声明为final;
//参数panel是点击菜单项后所生成的部窗口中的面板对象,必须声明为final。
privateJMenuItembuiledAdminMenuItem(JMenumenu,finalStringitemName,finalJPanelpanel){
finalJMenuItemmenuItem=newJMenuItem(itemName);
menu.add(menuItem);
menuItem.setEnabled(false);
menuItem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
buildInternalFrame(panel,itemName,menuItem);//生成部窗口
}
});
returnmenuItem;
}
//生成部窗口:
窗口中间放置面板对象。
参数item是与部窗口相关的菜单项。
privatevoidbuildInternalFrame(JPanelpanel,Stringtitle,finalJMenuItemitem){
JInternalFrameframe=newJInternalFrame(title,true,true,true,true);//部窗口
frame.addInternalFrameListener(newInternalFrameAdapter(){//部窗口监听:
关闭后执行
publicvoidinternalFrameClosed(InternalFrameEvente){
item.setEnabled(true);//关闭部窗口时,菜单项item可用。
}
});
Containercontainer=frame.getContentPane();//部窗口容器面板
container.add(panel,BorderLayout.CENTER);//参数面板panel放在容器中间
frame.setSize(600,480);
theDesktop.add(frame);//部窗口添加到桌面面板才能显示
frame.setVisible(true);
item.setEnabled(false);//生成部窗口后,与之相关的菜单项item不可用。
}
//测试TestFrame类
publicstaticvoidmain(String[]args){
JFrameframe=newTestFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
*
3、数据库表的添、删、改、查
//添加记录
protectedvoiddealAddbtn(){
huiyuana1=newhuiyuan();//改成你的bean
a1.setBianhao(fields[0].getText().trim());//顺序要对,fields里的序号要和表的字段的顺序一样
a1.setKahao(fields[1].getText().trim());
a1.setXingming(fields[2].getText().trim());
a1.setXingbie(fields[3].getText().trim());
a1.setLianxifangshi(fields[4].getText().trim());
a1.setDizhi(fields[5].getText().trim());
DBhuiyuan.addHuiyuan(a1);//改成你的DBbean
JOptionPane.showMessageDialog(null,"添加成功");
tableModel.setQuery("会员表");//改成你的表名
}//修改记录
protectedvoiddealUpdatebtn(){
huiyuana1=newhuiyuan();//改成你的bean
a1.setBianhao(fields[0].getText().trim());//顺序要对,fields里的序号要和表的字段的顺序一样
a1.setKahao(fields[1].getText().trim());
a1.setXingming(fields[2].getText().trim());
a1.setXingbie(fields[3].getText().trim());
a1.setLianxifangshi(fields[4].getText().trim());
a1.setDizhi(fields[5].getText().trim());
DBhuiyuan.updatehuiyuanbiao(a1);//改成你的DBbean
JOptionPane.showMessageDialog(null,"修改成功");
tableModel.setQuery("会员表");//改成你的表名
}
//删除记录
protectedvoiddealDelbtn(){
DBhuiyuan.deletehuiyuanbiao(fields[0].getText().trim());//改成你的DBbean
JOptionPane.showMessageDialog(null,"删除成功");
tableModel.setQuery("会员表");//改成你的表名
}
//查询记录
protectedvoiddealQuerybtn(){
huiyuanhy=DBhuiyuan.gethuiyuan(fields[0].getText());
fields[1].setText(hy.getKahao());
fields[2].setText(hy.getXingming());
fields[3].setText(hy.getXingbie());
fields[4].setText(hy.getLianxifangshi());
fields[5].setText(hy.getDizhi());
JOptionPane.showMessageDialog(null,"查询成功");
tableModel.setQuery("会员表");//改成你的表名
}
三、图形界面设计与实现
登陆界面
登陆成功
表的操作界面
登陆界面程序:
packagechapter00jdbc.exammanager;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.event.*;
importchapter00jdbc.exammanager.db.DBAdmin;
importchapter00jdbc.exammanager.mygui.*;
publicclassTestFrameextendsJFrame{
privatestaticJDesktopPanetheDesktop;
JMenuItemloginItem,exitItem,helpItem;//"登录"、"退出"和"帮助容"菜单项
finalStringitemString[]={"管理员","会员"};
finalJPanelitemPanel[]={newPanelAdmin("超市销售信息管理系统","Admin"),newPanelhuiyuanBiao("超市销售信息管理系统","会员表")};
JMenuItemitem[]=newJMenuItem[itemPanel.length];//"题库管理"菜单的4个菜单项:
3个表和"生成试卷"
publicTestFrame(){
super("超市销售信息管理系统");
//1."登录"菜单:
有两个菜单项--"登录"和"退出"
JMenuloginMenu=newJMenu("登录");
JMenuItemloginItem=newJMenuItem("登录");
loginMenu.add(loginItem);
loginItem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringname=JOptionPane.showInputDialog(null,"请输入登陆名字:
");
Stringpassword=JOptionPane.showInputDialog(null,"请输入登陆密码:
");
if(DBAdmin.isAdmin(name,password)){
JOptionPane.showMessageDialog(null,"登录成功!
");
for(inti=0;iitem[i].setEnabled(true);
}
else{
JOptionPane.showMessageDialog(null,"密码不对,登录失败!
");
}
}
});
JMenuItemexitItem=newJMenuItem("退出");
loginMenu.add(exitItem);
exitItem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
System.exit(0);
}
});
//2."题库管理"菜单:
库中的每个表对应一个菜单项,实现添、删、改、查;"导出试卷"菜单项
JMenuadminMenu=newJMenu("超市销售信息管理系统");
for(inti=0;iitem[i]=builedAdminMenuItem(adminMenu,itemString[i],itemPanel[i]);
//3."帮助"菜单
JMenuhelpMenu=newJMenu("帮助");
JMenuItemhelpItem=newJMenuItem("帮助容");
helpMenu.add(helpItem);
helpItem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
JOptionPane.showMessageDialog(TestFrame.this,"运行程序后,看相应的代码");
}
});
//4.创建菜单条,添加菜单
JMenuBarbar=newJMenuBar();
setJMenuBar(bar);
bar.add(loginMenu);
bar.add(adminMenu);
bar.add(helpMenu);
//5.窗口中间放置桌面面板,用来显示部窗口
theDesktop=newJDesktopPane();
getContentPane().add(theDesktop,BorderLayout.CENTER);
setSize(800,600);
setVisible(true);
}
//创建菜单项的通用方法:
参数menu是菜单项所添加在其上的菜单;
//参数itemName是菜单项的名字,因其在匿名部类对象中引用,必须声明为final;
//参数panel是点击菜单项后所生成的部窗口中的面板对象,必须声明为final。
privateJMenuItembuiledAdminMenuItem(JMenumenu,finalStringitemName,finalJPanelpanel){
finalJMenuItemmenuItem=new