• 如果程序有bug或者有疑问的地方请评论,看到后会及时解决的。
  • 如果程序哪里写的不好或者还可以优化请评论,会悉心听取的,谢谢。

暑假重新复习java,把基础的部分给看完了就拿着以前的作业练练手,由于之前学习python的时候写过一个汽车管理系统,当时把数据放在文件里了,这次就打算不用文件了,也没用数据库,就想用集合写一写,这也是导致功能没写完的原因之一,在用GUI把界面搭建好了之后,我发现每次修改数据的记录并不会被保留,这也就导致程序是一次运行的,在发现这个问题后就没太大的兴趣去写了,这算是一个原因吧,另一些原因是暑假要复习的东西还有很多,我不能在这上面花费太多的时间,不过我决定还是写一部分功能,就把库存功能给写了,考虑到其他功能与之类似就没在写了。此项目可以用来做一个练习和参考。


  • 程序要求:

药店管理系统的设计与实现

打开系统后为登录界面,用户输入账号密码后进入系统,系统分为管理员、药店销售员、药品采购员三类用户,不同类型用户显示界面不同。

管理员功能:

(1)库存管理:实现药品的增删改查,包括药品名称、规格、进货单价、销售单价、药品数量、厂商;

(2)销售管理:销售记录的增删改查,包括药品名称、销售价、销售时间、销售数量,如果是会员,自动积分;

(3)顾客会员管理:会员信息的增删改查,包括会员号、会员积分等;

(4)员工信息管理:员工信息增删改查,包括员工账号、账号类型、密码等;

(5)个人账号设置:包括修改密码等;

销售员功能:

(1)销售管理:销售记录的增删改查,包括药品名称、销售价、销售时间、销售数量,如果是会员,自动积分;

(2)顾客会员管理:会员信息的增删改查,包括会员号、会员积分等;

(3)个人账号设置:包括修改密码等;

药品采购员功能:

(1)进货管理:药品增加,包括新进药品的名称、规格、进货单价、进货数量、厂商,如果新进药品信息与库存药品信息不同,则需分开保存;

(2)个人账号设置:修改密码等。


  • 用到的知识点:

static关键字,类,集合,GUI,

  • 具体的效果图:

  • 说明:

程序中除了管理员用户给了两个初始值,其余的都没有初始值,在登录的时候有两个管理员用户可以登录,采购员和销售员用户的功能没有完善,管理员用户的的账号和密码一个是(root,root),另一个是(system,system),在程序中的‘-’是为了分隔开账号和密码的。在查找上写的比较简单,没分的太细的去查找,涉及到查询的速度的关系,由于集合中的数据很少,就简单的写了一个按药品名称查找。

  • 程序设计流程:

创建登录页面,在登录页面的“登录”按钮添加动作监听器根据不同的用户跳转到不同的页面->在菜单页面的菜单项设定选择不同的功能会打开不同操作页面,同时在操作子界面的时候,菜单界面并不会消失而关闭菜单界面,子界面会消失->数据的交换通过一个Set集合和四个List集合完成的,考虑到Set集合的不可重复和List集合的有序这样会使数据交换更加的容易。

  • 遇到的问题:

①界面自动关闭:刚开始设想的是在登录过后自动登录界面消失,菜单界面打开,这个问题一时间没有解决就放着了,主要是一个登录按钮怎么创建两个监听事件呢,有点迷了,后来认为大可不必这样,只需要把界面通过setVisible()设置成不可显示就解决了,这也再次验证了,遇到问题一时间想不出来不要急,没准做到后面自然就解决了。

②子界面关闭,主界面不受影响:这个问题是在CSDN中找到的答案,只需要把setDefaultCloseOperation(参数)方法的参数由JFrame.EXIT_ON_CLOSE改成JFrame.HIDE_ON_CLOSE即可,改后的参数表示的是隐藏,之前的是关闭JVM虚拟机。

③关于跳转功能界面:第一次写的时候使用的把增删查改给写了四个类,然后直接在菜单项的监听器中跳转就行了,后来发现这样子处理在数据交换上不太方便,虽然使用了static关键字,就索性把四个类放在一个类中,每个功能(增删查改中一个)写一个静态方法,把数据的存储对象放在全局类下,这样不同类间的数据也可以交换。

  • 运行说明:

把程序放在直接复制在包下就可以运行了,至于图片需要在项目下建立和src文件夹,把图片拖入进去就可以了,注意图片的名称(这里我的后缀名是打开的),如果有问题请评论。

  • 资料:

用了三个图片,图片所在的文件夹和src文件夹同级:

loginscreen.png

loginscreen2.png

functionscreen.png

  • java源码:
//药店管理系统,没有数据库的连接,使用GUI界面;不同用户的登陆页面不同,每个用户具有的功能里都有增删查改功能。import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashSet;
import java.util.LinkedList;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuBar;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.*;//主界面设置
//登陆界面
class LoginScreen extends JFrame {private JLabel jlabel1;private JLabel jlabel1_1;private JLabel jlabel2;private JTextField jtf1;private JLabel jlabel3;private JPasswordField jpf1;private JComboBox jcb;private JButton jb1;private String item1;private String item2;private String s1;private boolean i;public LoginScreen() {show_Login();}public void show_Login() {setTitle("药店管理系统-请登录");setSize(700, 550);setLocation(1000, 200);setResizable(false);setLayout(null); // 空布局较为灵活setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置登录页左侧图片jlabel1 = new JLabel(new ImageIcon("photo/loginscreen.png"));jlabel1.setBounds(0, 0, 400, 515);add(jlabel1);// 设置右上角图片jlabel1_1 = new JLabel(new ImageIcon("photo/loginscreen2.png"));jlabel1_1.setBounds(400, 0, 300, 180);add(jlabel1_1);// 设置字体Font font_1 = new Font("宋体", Font.PLAIN, 18);// 设置账号文本框jlabel2 = new JLabel("账号:");jlabel2.setFont(font_1);jlabel2.setBounds(420, 200, 50, 40);add(jlabel2);jtf1 = new JTextField();jtf1.setFont(font_1);jtf1.setBounds(470, 200, 200, 30);add(jtf1);// 设置密码文本框jlabel3 = new JLabel("密码:");jlabel3.setFont(font_1);jlabel3.setBounds(420, 240, 50, 40);add(jlabel3);jpf1 = new JPasswordField();jpf1.setFont(font_1);jpf1.setEchoChar('*');jpf1.setBounds(470, 240, 200, 30);add(jpf1);// 设置组合框选择用户jcb = new JComboBox();String[] additem = { "请选择用户类型", "管理员", "采购员", "销售员" };for (int i = 0; i < additem.length; i++) {jcb.addItem(additem[i]);}jcb.setFont(font_1);jcb.setBounds(470, 280, 200, 30);add(jcb);// 组合框添加动作监听器jcb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {item1 = (String) jcb.getSelectedItem();if ("请选择用户类型".equals(item1)) {JOptionPane.showMessageDialog(LoginScreen.this, "您未输入信息或未正确选择用户类型,请重新选择!");}}});// 设置“登录”按钮jb1 = new JButton("登录");jb1.setFont(font_1);jb1.setBounds(580, 330, 80, 40);add(jb1);// 预先添加管理员账户Pharmacy_Manage.administrator_user.add("root-root");Pharmacy_Manage.administrator_user.add("system-system");// 登录按钮添加动作监听器jb1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {item2 = (String) jcb.getSelectedItem();s1 = jtf1.getText() + '-' + String.valueOf(jpf1.getPassword());if ("请选择用户类型".equals(item2)) {JOptionPane.showMessageDialog(LoginScreen.this, "您未选择用户类型,请选择!");} else {if ("管理员".equals(item2)) {// 进行账号和密码的匹配,若成功,跳转页面并关闭该页面,否则输出"账号密码或者用户类型错误请重新输入"对话框for (Object obj : Pharmacy_Manage.administrator_user) {if (String.valueOf(obj).equals(s1)) {i = true;break;} else {i = false;}}if (i) {// 满足条件跳转到菜单界面并关闭当前登陆界面,先关闭登陆页面再打开菜单页面LoginScreen.this.setVisible(false);new MenuScreen();} else {JOptionPane.showMessageDialog(LoginScreen.this, "账号密码或者用户类型错误,请重新输入!");}}// 由于管理员的界面和功能与采购员和销售员相似考虑到代码的长度问题以及时间问题就不写了if ("采购员".equals(item2)) {// 这个用户的界面和功能就不写了JOptionPane.showMessageDialog(LoginScreen.this, "采购员功能未完善!");}if ("销售员".equals(item2)) {// 这个用户的界面和功能也不写了JOptionPane.showMessageDialog(LoginScreen.this, "销售员功能未完善!");}}}});setVisible(true);}
}//菜单界面
class MenuScreen extends JFrame {private JMenuBar jmb;private JLabel jlabel4;public MenuScreen() {show_Menu();}public void show_Menu() {// 创建菜单界面setTitle("药店管理系统-管理员");setSize(700, 550);setLocation(1000, 200);setLayout(null);setResizable(false);setLayout(null);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Font font_2 = new Font("宋体", Font.PLAIN, 18);jmb = new JMenuBar();setJMenuBar(jmb);JMenu[] jmenu = { new JMenu("库存管理"), new JMenu("销售管理"), new JMenu("顾客会员管理"), new JMenu("员工信息管理"),new JMenu("个人账号设置"), new JMenu("帮助") };for (int j = 0; j < jmenu.length; j++) {jmenu[j].setFont(font_2);jmb.add(jmenu[j]);}JMenuItem[] jmenuitem1 = { new JMenuItem("增加药品"), new JMenuItem("删除药品"), new JMenuItem("修改药品"),new JMenuItem("查找药品") };JMenuItem[] jmenuitem2 = { new JMenuItem("增加销售记录"), new JMenuItem("删除销售记录"), new JMenuItem("修改销售记录"),new JMenuItem("查找销售记录") };JMenuItem[] jmenuitem3 = { new JMenuItem("增加会员"), new JMenuItem("删除会员"), new JMenuItem("修改会员信息"),new JMenuItem("查找会员信息") };JMenuItem[] jmenuitem4 = { new JMenuItem("增加员工信息"), new JMenuItem("删除员工信息"), new JMenuItem("修改员工信息"),new JMenuItem("查找员工信息") };JMenuItem[] jmenuitem5 = { new JMenuItem("修改密码") };JMenuItem[] jmenuitem6 = { new JMenuItem("使用说明") };// 这一步没想到太好的方法来添加菜单项,只好用6个for循环来添加菜单项,再用循环添加监听器实现功能页面的跳转for (int i = 0; i < jmenuitem1.length; i++) {jmenuitem1[i].setFont(font_2);jmenu[0].add(jmenuitem1[i]);}for (int m = 0; m < jmenuitem1.length; m++) {switch (m) {case 0:jmenuitem1[m].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {InventoryManagement.increase_Inventory();}});break;case 1:jmenuitem1[m].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {InventoryManagement.delete_Inventory();}});break;case 2:jmenuitem1[m].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {InventoryManagement.updeta_Inventory();}});break;case 3:jmenuitem1[m].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {InventoryManagement.select_Inventory();}});break;}}for (int i = 0; i < jmenuitem2.length; i++) {jmenuitem2[i].setFont(font_2);jmenu[1].add(jmenuitem2[i]);}for (int i = 0; i < jmenuitem3.length; i++) {jmenuitem3[i].setFont(font_2);jmenu[2].add(jmenuitem3[i]);}for (int i = 0; i < jmenuitem4.length; i++) {jmenuitem4[i].setFont(font_2);jmenu[3].add(jmenuitem4[i]);}for (int i = 0; i < jmenuitem5.length; i++) {jmenuitem5[i].setFont(font_2);jmenu[4].add(jmenuitem5[i]);}for (int i = 0; i < jmenuitem6.length; i++) {jmenuitem6[i].setFont(font_2);jmenu[5].add(jmenuitem6[i]);}jlabel4 = new JLabel(new ImageIcon("photo/functionscreen.png"));jlabel4.setBounds(0, 0, 700, 550);add(jlabel4);setVisible(true);}
}
//若为字符串类型则不用引用,否则需要进行一步判断是否有重复
class Addition {private String string1;private String string2;private String string3;private String string4;public Addition(String string1,String string2,String string3,String string4) {this.string1 = string1;this.string2 = string2;this.string3 = string3;this.string4 = string4;}public String toString() {return string1+"-"+string2+"-"+string3+"-"+string4;}public int hashCode() {return string1.hashCode();}public boolean equals(Object obj) {if (this == obj) {return true;}if (!(obj instanceof Addition)) {return false;}Addition addi = (Addition) obj;boolean b = this.string1.equals(addi.string1);return b;}
}//库存管理的相关界面
class InventoryManagement{//添加界面public static void increase_Inventory() {JFrame jframe1=new JFrame();jframe1.setTitle("药店管理系统-添加药品");jframe1.setSize(500, 300);jframe1.setLocation(500, 200);jframe1.setLayout(null);jframe1.setResizable(false);jframe1.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);Font font_3 = new Font("宋体", Font.PLAIN, 18);JLabel[] jlabel5 = { new JLabel("药品名称:"), new JLabel("进货单价:"), new JLabel("销售单价:"), new JLabel("药品数量:") };for (int i = 0; i < jlabel5.length; i++) {jlabel5[i].setFont(font_3);switch (i) {case 0:jlabel5[i].setBounds(50, 30, 100, 40);break;case 1:jlabel5[i].setBounds(50, 70, 100, 40);break;case 2:jlabel5[i].setBounds(50, 110, 100, 40);break;case 3:jlabel5[i].setBounds(50, 150, 100, 40);break;}jframe1.add(jlabel5[i]);}JTextField[] jtf2 = { new JTextField(), new JTextField(), new JTextField(), new JTextField() };for (int i = 0; i < jtf2.length; i++) {jtf2[i].setFont(font_3);switch (i) {case 0:jtf2[i].setBounds(150, 30, 200, 30);break;case 1:jtf2[i].setBounds(150, 70, 200, 30);break;case 2:jtf2[i].setBounds(150, 110, 200, 30);break;case 3:jtf2[i].setBounds(150, 150, 200, 30);break;}jframe1.add(jtf2[i]);}JButton jb2 = new JButton("添加");jb2.setFont(font_3);jb2.setBounds(350, 210, 70, 30);jframe1.add(jb2);// "添加"按钮监听器!!!!!!!!!!!!!!!!!!!!!!!!!jb2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (jtf2[0].getText()==null || jtf2[0].getText().length()<=0|| jtf2[1].getText()==null || jtf2[1].getText().length()<=0 || jtf2[2].getText()==null || jtf2[2].getText().length()<=0|| jtf2[3].getText()==null || jtf2[3].getText().length()<=0) {JOptionPane.showMessageDialog(jframe1, "输入信息不可有空,请输入完成的信息!");}else {Pharmacy_Manage.inventory_function.add(new Addition(jtf2[0].getText(),jtf2[1].getText(),jtf2[2].getText(),jtf2[3].getText()));//由于list集合可重复,这里进行一次判断,让他不可重复if(Pharmacy_Manage.inventory_list1.isEmpty()) {Pharmacy_Manage.inventory_list1.add(jtf2[0].getText());Pharmacy_Manage.inventory_list2.add(jtf2[1].getText());Pharmacy_Manage.inventory_list3.add(jtf2[2].getText());Pharmacy_Manage.inventory_list4.add(jtf2[3].getText());JOptionPane.showMessageDialog(jframe1, "添加成功!");}else {boolean a=true;if(Pharmacy_Manage.inventory_list1.contains(jtf2[0].getText())) {a=false;JOptionPane.showMessageDialog(jframe1, "已有此药,添加失败!");}if(a) {Pharmacy_Manage.inventory_list1.add(jtf2[0].getText());Pharmacy_Manage.inventory_list2.add(jtf2[1].getText());Pharmacy_Manage.inventory_list3.add(jtf2[2].getText());Pharmacy_Manage.inventory_list4.add(jtf2[3].getText());JOptionPane.showMessageDialog(jframe1, "添加成功!");}}}}});jframe1.setVisible(true);}//删除界面public static void delete_Inventory() {JFrame jframe2=new JFrame();jframe2.setTitle("药店管理系统-删除药品");jframe2.setSize(500, 300);jframe2.setLocation(500, 200);jframe2.setLayout(null);jframe2.setResizable(false);jframe2.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);Font font_4 = new Font("宋体", Font.PLAIN, 18);JLabel jlabel6=new JLabel("请输入要删除的药品名称:");jlabel6.setFont(font_4);jlabel6.setBounds(50, 30, 300, 40);jframe2.add(jlabel6);JTextField jtf3 = new JTextField();jtf3.setFont(font_4);jtf3.setBounds(50, 70, 220, 30);jframe2.add(jtf3);JButton jb3 = new JButton("删除");jb3.setFont(font_4);jb3.setBounds(220, 130, 70, 30);jframe2.add(jb3);// "删除"按钮的监听器!!!!!!!!!!!!!!!!!!jb3.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(jtf3.getText()==null || jtf3.getText().length()<=0) {JOptionPane.showMessageDialog(jframe2, "请输入要删除的药品名称!");}else {boolean b=true;int index1=0;//这里随便初始化一个值,不然会报index1变量没有初始化的错误,这里初始化对结果没有影响if(Pharmacy_Manage.inventory_list1.contains(jtf3.getText())) {index1=Pharmacy_Manage.inventory_list1.indexOf(jtf3.getText());b=false;}if(b) {JOptionPane.showMessageDialog(jframe2, "此药品不在库存中!");}else {//说明此药品在库存中,需要进行删除String s1=String.valueOf(Pharmacy_Manage.inventory_list1.get(index1))+"-"+String.valueOf(Pharmacy_Manage.inventory_list2.get(index1))+"-"+String.valueOf(Pharmacy_Manage.inventory_list3.get(index1))+"-"+String.valueOf(Pharmacy_Manage.inventory_list4.get(index1));Pharmacy_Manage.inventory_function.remove(s1);Pharmacy_Manage.inventory_list1.remove(index1);Pharmacy_Manage.inventory_list2.remove(index1);Pharmacy_Manage.inventory_list3.remove(index1);Pharmacy_Manage.inventory_list4.remove(index1);JOptionPane.showMessageDialog(jframe2, "删除成功");}}}});jframe2.setVisible(true);}//修改界面public static void updeta_Inventory() {JFrame jframe3=new JFrame();jframe3.setTitle("药店管理系统-修改药品");jframe3.setSize(500, 370);jframe3.setLocation(500, 200);jframe3.setLayout(null);jframe3.setResizable(false);jframe3.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);Font font_3 = new Font("宋体", Font.PLAIN, 18);JLabel jlablel7_1=new JLabel("请输入要修改的药品名称:");jlablel7_1.setFont(font_3);jlablel7_1.setBounds(50,10,300,40);jframe3.add(jlablel7_1);JTextField jtf3_1=new JTextField();jtf3_1.setFont(font_3);jtf3_1.setBounds(50,50,200,30);jframe3.add(jtf3_1);JLabel jlablel7_2=new JLabel("请输入修改后的药品信息:");jlablel7_2.setFont(font_3);jlablel7_2.setBounds(50,80,300,40);jframe3.add(jlablel7_2);JLabel[] jlabel7 = { new JLabel("药品名称:"), new JLabel("进货单价:"), new JLabel("销售单价:"), new JLabel("药品数量:") };for (int i = 0; i < jlabel7.length; i++) {jlabel7[i].setFont(font_3);switch (i) {case 0:jlabel7[i].setBounds(50, 130, 100, 40);break;case 1:jlabel7[i].setBounds(50, 170, 100, 40);break;case 2:jlabel7[i].setBounds(50, 210, 100, 40);break;case 3:jlabel7[i].setBounds(50, 250, 100, 40);break;}jframe3.add(jlabel7[i]);}JTextField[] jtf3 = { new JTextField(), new JTextField(), new JTextField(), new JTextField() };for (int i = 0; i < jtf3.length; i++) {jtf3[i].setFont(font_3);switch (i) {case 0:jtf3[i].setBounds(150, 130, 200, 30);break;case 1:jtf3[i].setBounds(150, 170, 200, 30);break;case 2:jtf3[i].setBounds(150, 210, 200, 30);break;case 3:jtf3[i].setBounds(150, 250, 200, 30);break;}jframe3.add(jtf3[i]);}JButton jb2 = new JButton("修改");jb2.setFont(font_3);jb2.setBounds(370, 250, 70, 30);jframe3.add(jb2);// "修改"按钮监听器!!!!!!!!!!!!!!!!!!!!!!!!!jb2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(jtf3_1.getText()==null || jtf3_1.getText().length()<=0) {JOptionPane.showMessageDialog(jframe3, "修改前的药品名称不可为空,请输入!");}else {int index2=0;if(Pharmacy_Manage.inventory_list1.contains(jtf3_1.getText())) {//先删除库存中此药品名称的信息,在添加修改后的index2=Pharmacy_Manage.inventory_list1.indexOf(jtf3_1.getText());String s2=String.valueOf(Pharmacy_Manage.inventory_list1.get(index2))+"-"+String.valueOf(Pharmacy_Manage.inventory_list2.get(index2))+"-"+String.valueOf(Pharmacy_Manage.inventory_list3.get(index2))+"-"+String.valueOf(Pharmacy_Manage.inventory_list4.get(index2));Pharmacy_Manage.inventory_list1.remove(index2);if(Pharmacy_Manage.inventory_list1.contains(jtf3[0].getText())) {Pharmacy_Manage.inventory_list1.add(index2, jtf3_1.getText());JOptionPane.showMessageDialog(jframe3, "库存中已有此药品,修改失败!");}else {Pharmacy_Manage.inventory_function.remove(s2);Pharmacy_Manage.inventory_list2.remove(index2);Pharmacy_Manage.inventory_list3.remove(index2);Pharmacy_Manage.inventory_list4.remove(index2);Pharmacy_Manage.inventory_function.add(new Addition(jtf3[0].getText(),jtf3[1].getText(),jtf3[2].getText(),jtf3[3].getText()));Pharmacy_Manage.inventory_list1.add(jtf3[0].getText());Pharmacy_Manage.inventory_list2.add(jtf3[1].getText());Pharmacy_Manage.inventory_list3.add(jtf3[2].getText());Pharmacy_Manage.inventory_list4.add(jtf3[3].getText());JOptionPane.showMessageDialog(jframe3, "修改成功!");}}else {JOptionPane.showMessageDialog(jframe3, "要修改的药品不在库存中!");}}}});jframe3.setVisible(true);}//查找界面  public static void select_Inventory() {JFrame jframe4=new JFrame();jframe4.setTitle("药店管理系统-查找药品");jframe4.setSize(500, 300);jframe4.setLocation(500, 200);jframe4.setLayout(null);jframe4.setResizable(false);jframe4.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);Font font_7 = new Font("宋体", Font.PLAIN, 18);JLabel jlabel8 = new JLabel("请输入要查找的药品名称:");jlabel8.setFont(font_7);jlabel8.setBounds(40, 10, 300, 40);jframe4.add(jlabel8);JTextField jtf5 = new JTextField();jtf5.setFont(font_7);jtf5.setBounds(40, 50, 220, 30);jframe4.add(jtf5);JButton jb5 = new JButton("查找");jb5.setFont(font_7);jb5.setBounds(290, 50,70, 30);jframe4.add(jb5);JTextArea jta1=new JTextArea();jta1.setFont(font_7);jta1.setEditable(false);//设置文本域不可编辑,只用来显示JScrollPane jsp1=new JScrollPane(jta1);jsp1.setBounds(40,90,340,150);jframe4.add(jsp1);//"查找"按钮监听器!!!!!!!!!!!!!jb5.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(jtf5.getText()==null || jtf5.getText().length()<=0) {JOptionPane.showMessageDialog(jframe4, "查找的药品名称不可为空,请输入要查找的药品名称!");}else {int index3=0;if(Pharmacy_Manage.inventory_list1.contains(jtf5.getText())) {index3=Pharmacy_Manage.inventory_list1.indexOf(jtf5.getText());String s3="药品名称:"+String.valueOf(Pharmacy_Manage.inventory_list1.get(index3))+" "+"进货单价:"+String.valueOf(Pharmacy_Manage.inventory_list2.get(index3))+" "+"销售单价:"+String.valueOf(Pharmacy_Manage.inventory_list3.get(index3))+" "+"药品数量:"+String.valueOf(Pharmacy_Manage.inventory_list4.get(index3));jta1.append(s3+"\n");}else {JOptionPane.showMessageDialog(jframe4, "查找的药品不在库存中!");}}}});jframe4.setVisible(true);}
}//全局类
public class Pharmacy_Manage {static HashSet administrator_user=new HashSet();//管理员用户的相关集合//库存功能的相关集合static HashSet inventory_function=new HashSet();//总的添加到HashSet集合中static LinkedList inventory_list1=new LinkedList();//四个属性分别添加到四个list集合中static LinkedList inventory_list2=new LinkedList();static LinkedList inventory_list3=new LinkedList();static LinkedList inventory_list4=new LinkedList();public static void main(String[] args) {new LoginScreen();}
}

java+GUI药店管理系统相关推荐

  1. 基于java的药店管理系统

    技术:Java.JSP等 摘要: 当今社会,随着计算机硬件成本的不断降低,以及互联网的强势发展,计算机技术越来越多地影响人们的日常生活,信息技术正在以超快的速度取缔传统的低效率的手工作业.考虑到我们国 ...

  2. 基于java的药店管理系统的设计与实现

    技术:Java.JSP等 摘要: 当今社会,随着计算机硬件成本的不断降低,以及互联网的强势发展,计算机技术越来越多地影响人们的日常生活,信息技术正在以超快的速度取缔传统的低效率的手工作业.考虑到我们国 ...

  3. java 药店管理系统,毕业论文--基于java的药店管理系统.doc

    PAGE \* MERGEFORMAT I 摘 要 随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业 ...

  4. 计算机毕业技术,JAVA.JSP药店管理系统论文

    备注原文来源于:六月雪计算机毕业设计 摘要 药店对药品信息和数据管理纷乱复杂,整理统计费力费时.要做好对企业的管理,企业就必须快速准确地获取自己企业单位的信息,这就要求及时统计数据并方便查看,以及对企 ...

  5. 基于JAVA的药店管理系统药品售卖平台【数据库设计、论文、源码、开题报告】

    数据库脚本 /* SQLyog 企业版 - MySQL GUI v8.14 MySQL - 5.5.40 : Database - ssm39882 ************************* ...

  6. java GUI实现用户管理系统

    使用Java GUI实现用户管理系统,连接MYSQL数据库,这是登录界面 下面是用户管理界面,登录之后可以进行相关操作 主要实现过程:启动程序 package manage;public class ...

  7. Java/HTML/CSS/JavaScript/Jsp实现的药店管理系统源码

    Java/HTML/CSS/JavaScript/Jsp实现的药店管理系统. 一.系统功能 客户管理:记录每个客户的个人信息 药品管理:按照药品分类进行药品的库存数量,信息管理 订单管理:记录药店的每 ...

  8. java药店管理系统后台代码_基于jsp的药店管理系统-JavaEE实现药店管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的药店管理系统, 该项目可用各类java课程设计大作业中, 药店管理系统的系统架构分为前后台两部分, 最终实现在线上 ...

  9. 【毕业设计】Java 基于微信小程序的药店管理系统

    一.前言 现在药品的种类和厂开始越来越多,而且不同厂的相同类别的药品价格也不样,这对于销售工作人员来说,肯定就会造成定的压力,如果能够借助计算机相关技术实现一个便捷易用的药店管理系统,不仅可以保证各种 ...

最新文章

  1. Bert系列(二)——源码解读之模型主体
  2. NServiceBus教程-消息传递与处理
  3. docker supervisor进程管理
  4. 30分钟掌握 C#6
  5. LeetCode 1662. 检查两个字符串数组是否相等
  6. 论文浅尝 | 当知识图谱遇上零样本学习——零样本学习综述
  7. “编程太差,那你别搞开发了!”基础差的程序员,你不知道有多难!!
  8. 软件获取手机的ime权限_【干货】解锁VIP会员权限,两款手机必备剪辑软件,免登陆,1080P输出无压力!...
  9. WebSphere安装配置文档
  10. 网宿cdn api 刷新缓存函数
  11. pcf8591c语言编程,ADDA系列PCF8591的驱动程序
  12. 苹果系统python读取文件_python中文件的读取与写入以及os模块
  13. 谷歌浏览器自带网页截图快捷键
  14. php 预编译,预编译的prepare statements 管理, 实现和思路
  15. mysql中字段长度到底是字符数还是字节数?
  16. linux线程亲和性,线程亲和性
  17. 日志版本问题:Your binding is version 1.5.5 or earlier.Upgrade your binding to version 1.6.x.
  18. IJK 使用中遇到的问题
  19. Asp.net Web Api开发(第二篇)性能:使用Jil提升Json序列化性能
  20. 黑苹果新手指导:名词解释常用软件常见问题说明

热门文章

  1. xuexi .net
  2. 一个注册页面的HTML实现
  3. 二极管限幅电路和钳位电路-全网最详细讲解
  4. vnc远程控制软件配置,如何配置vnc远程控制软件实现批量管理服务器
  5. 计算机的心智:操作系统之哲学原理 pdf电子书
  6. 南京理工大学计算机学院教授严捍,南京理工大学计算机科学与技术学院研究生导师简介-唐金辉...
  7. STM32单片机启动过程详解
  8. 水处理设计 工艺设计 水处理计算公式 污水处理厂设计整理了AAO AO SBR UASB 氧化沟工艺计算公式
  9. 质证辩论中如何反驳方法
  10. python 易盛行情_易盛信息9.0外盘期货行情数据API接口公共授权开发包例子代码...