- 如果程序有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();
}
}