• 【JAVA】-- 简易超市管理系统窗口(四)(实现思路+每步代码)


    前面已经完成了“增加内容”的功能,下面将要完成“删除内容”功能。

    删除内容就是销售商品,点击添加货物,选择货物,设置好价格数量和经办人即可销售。

     一、为“增加内容”、“删除内容”按钮增加点击事件实现切换

    创建Shan类

    主类增加

    构建Shan类方法实例化对象,并设置唯一标识。

    private Shan shanPanel = null;
    
    1. private Shan getShan(){
    2. if(shanPanel == null){
    3. shanPanel = new Shan();
    4. shanPanel.setName("shanPanel");
    5. }
    6. return shanPanel;
    7. }

    getMainPanel方法增加

     mainPanel.add(getShan(),getShan().getName());

    getZengButton方法增加/修改

    actionPerformed是监听操作的接口,如按钮按下、文本框输入回车等操作,

    当按钮按下时,创建CardLayout卡片布局对象,使用show方法将面板显示,实现切换效果。

    1. public void actionPerformed(ActionEvent e) {
    2. CardLayout layout = (CardLayout) mainPanel.getLayout();
    3. layout.show(getMainPanel(),"zengPanel");
    4. }

    getShanButton方法增加/修改

    1. public void actionPerformed(ActionEvent e) {
    2. CardLayout layout = (CardLayout)mainPanel.getLayout();
    3. layout.show(getMainPanel(),"shanPanel");
    4. }

    二、设置分割框

    设置界面分割框,分为左面板和右面板,左面板为网格包布局,右为边框布局。

    Shan类增加

    1. public Shan(){
    2. super();
    3. this.setSize(352,302);
    4. this.setOpaque(false);//设置面板透明
    5. this.setLayout(new BorderLayout());//使用边框布局
    6. JSplitPane hSplitPane = new JSplitPane();//设置一个分割框
    7. hSplitPane.setOpaque(false);
    8. JPanel leftPanel = new JPanel();
    9. leftPanel.setOpaque(false);
    10. leftPanel.setLayout(new GridBagLayout());//网格包布局
    11. JPanel rightPanel = new JPanel();
    12. rightPanel.setOpaque(false);
    13. rightPanel.setLayout(new BorderLayout());
    14. hSplitPane.setLeftComponent(leftPanel);
    15. hSplitPane.setRightComponent(rightPanel);
    16. hSplitPane.setOneTouchExpandable(true);//快速隐藏显示
    17. hSplitPane.setDividerLocation(350);//设置分割条的位置
    18. this.add(hSplitPane,BorderLayout.CENTER);
    19. }

    三、增加“销售记录”标签

    Shan类增加

    public JLabel label1;//销售记录

     构造方法增加

    1. GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
    2. gridBagConstraints1.gridx = 0;
    3. gridBagConstraints1.gridy = 0;
    4. gridBagConstraints1.insets = new Insets(5,5,0,0);
    5. label1 = new JLabel("销售记录");
    6. label1.setFont(new Font("华文行楷",Font.BOLD,20));
    7. label1.setHorizontalAlignment(SwingConstants.CENTER);
    8. label1.setHorizontalTextPosition(SwingConstants.CENTER);
    9. label1.setVerticalAlignment(SwingConstants.CENTER);
    10. label1.setVerticalTextPosition(SwingConstants.CENTER);
    11. leftPanel.add(label1,gridBagConstraints1);

    四、增加“添加货物”按钮

    Shan类增加

    构造方法增加

    1. GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
    2. gridBagConstraints2.gridx = 1;
    3. gridBagConstraints2.gridy = 0;
    4. gridBagConstraints2.insets = new Insets(5,0,0,5);
    5. gridBagConstraints2.weightx = 1.0;
    6. gridBagConstraints2.fill = GridBagConstraints.HORIZONTAL;
    7. button1 = new JButton("添加货物");
    8. button1.setFont(new Font("华文行楷",Font.BOLD,20));
    9. button1.setOpaque(false);
    10. button1.setBorderPainted(false);
    11. button1.setContentAreaFilled(false);
    12. button1.setFocusPainted(false);
    13. leftPanel.add(button1,gridBagConstraints2);

    五、增加下拉框功能

    Shan类增加

        public JComboBox box1;//下拉框

    构造方法增加

    1. GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
    2. gridBagConstraints3.gridx = 0;
    3. gridBagConstraints3.gridy = 1;
    4. gridBagConstraints3.insets = new Insets(0,5,5,5);
    5. gridBagConstraints3.gridwidth = 2;
    6. gridBagConstraints3.weightx = 1.0;
    7. gridBagConstraints3.fill = GridBagConstraints.HORIZONTAL;
    8. box1 = new JComboBox();
    9. leftPanel.add(box1,gridBagConstraints3);

    六、增加标签与输入框

    Shan类增加

    1. public JLabel label2;
    2. public JTextField field2;
    3. public JLabel label3;
    4. public JTextField field3;
    5. public JLabel label4;
    6. public JTextField field4;
    7. public JLabel label5;
    8. public JTextField field5;
    9. public JLabel label6;
    10. public JTextField field6;
    11. public JLabel label7;
    12. public JTextField field7;
    13. public JLabel label8;
    14. public JTextField field8;
    15. public JLabel label9;
    16. public JTextField field9;

    构造方法增加

    1. GridBagConstraints gridBagConstraints4 = new GridBagConstraints();
    2. gridBagConstraints4.gridx = 0;
    3. gridBagConstraints4.gridy = 2;
    4. gridBagConstraints4.insets = new Insets(0,5,0,0);
    5. label2 = new JLabel("商品名称");
    6. leftPanel.add(label2,gridBagConstraints4);
    7. GridBagConstraints gridBagConstraints5 = new GridBagConstraints();
    8. gridBagConstraints5.gridx = 1;
    9. gridBagConstraints5.gridy = 2;
    10. gridBagConstraints5.insets = new Insets(0,0,0,5);
    11. gridBagConstraints5.weightx = 1.0;
    12. gridBagConstraints5.fill = GridBagConstraints.HORIZONTAL;
    13. field2 = new JTextField();
    14. leftPanel.add(field2,gridBagConstraints5);
    15. GridBagConstraints gridBagConstraints6 = new GridBagConstraints();
    16. gridBagConstraints6.gridx = 0;
    17. gridBagConstraints6.gridy = 3;
    18. gridBagConstraints6.insets = new Insets( 0,5,0,0);
    19. label3 = new JLabel("商品厂家");
    20. leftPanel.add(label3,gridBagConstraints6);
    21. GridBagConstraints gridBagConstraints7 = new GridBagConstraints();
    22. gridBagConstraints7.gridx = 1;
    23. gridBagConstraints7.gridy = 3;
    24. gridBagConstraints7.insets = new Insets(0,0,0,5);
    25. gridBagConstraints7.weightx = 1.0;
    26. gridBagConstraints7.fill = GridBagConstraints.HORIZONTAL;
    27. field3 = new JTextField();
    28. leftPanel.add(field3,gridBagConstraints7);
    29. GridBagConstraints gridBagConstraints8= new GridBagConstraints();
    30. gridBagConstraints8.gridx=0;
    31. gridBagConstraints8.gridy=4;
    32. gridBagConstraints8.insets=new Insets(0, 5, 0, 0);
    33. label4=new JLabel("商品价格");
    34. leftPanel.add(label4, gridBagConstraints8);
    35. GridBagConstraints gridBagConstraints9= new GridBagConstraints();
    36. gridBagConstraints9.gridx=1;
    37. gridBagConstraints9.gridy=4;
    38. gridBagConstraints9.insets=new Insets(0, 0, 0, 5);
    39. gridBagConstraints9.weightx=1.0;
    40. gridBagConstraints9.fill=GridBagConstraints.HORIZONTAL;
    41. field4=new JTextField();
    42. leftPanel.add(field4, gridBagConstraints9);
    43. GridBagConstraints gridBagConstraints10= new GridBagConstraints();
    44. gridBagConstraints10.gridx=0;
    45. gridBagConstraints10.gridy=5;
    46. gridBagConstraints10.insets=new Insets(0, 5, 0, 0);
    47. label5=new JLabel("销售数量");
    48. leftPanel.add(label5, gridBagConstraints10);
    49. GridBagConstraints gridBagConstraints11= new GridBagConstraints();
    50. gridBagConstraints11.gridx=1;
    51. gridBagConstraints11.gridy=5;
    52. gridBagConstraints11.insets=new Insets(0, 0, 0, 5);
    53. gridBagConstraints11.weightx=1.0;
    54. gridBagConstraints11.fill=GridBagConstraints.HORIZONTAL;
    55. field5=new JTextField();
    56. leftPanel.add(field5, gridBagConstraints11);
    57. GridBagConstraints gridBagConstraints12= new GridBagConstraints();
    58. gridBagConstraints12.gridx=0;
    59. gridBagConstraints12.gridy=6;
    60. gridBagConstraints12.insets=new Insets(0, 5, 0, 0);
    61. label6=new JLabel("销售收益");
    62. leftPanel.add(label6, gridBagConstraints12);
    63. GridBagConstraints gridBagConstraints13= new GridBagConstraints();
    64. gridBagConstraints13.gridx=1;
    65. gridBagConstraints13.gridy=6;
    66. gridBagConstraints13.insets=new Insets(0, 0, 0, 5);
    67. gridBagConstraints13.weightx=1.0;
    68. gridBagConstraints13.fill=GridBagConstraints.HORIZONTAL;
    69. field6=new JTextField();
    70. leftPanel.add(field6, gridBagConstraints13);
    71. GridBagConstraints gridBagConstraints14= new GridBagConstraints();
    72. gridBagConstraints14.gridx=0;
    73. gridBagConstraints14.gridy=7;
    74. gridBagConstraints14.insets=new Insets(0, 5, 0, 0);
    75. label7=new JLabel("货款余额");
    76. leftPanel.add(label7, gridBagConstraints14);
    77. GridBagConstraints gridBagConstraints15= new GridBagConstraints();
    78. gridBagConstraints15.gridx=1;
    79. gridBagConstraints15.gridy=7;
    80. gridBagConstraints15.insets=new Insets(0, 0, 0, 5);
    81. gridBagConstraints15.weightx=1.0;
    82. gridBagConstraints15.fill=GridBagConstraints.HORIZONTAL;
    83. field7=new JTextField();
    84. leftPanel.add(field7, gridBagConstraints15);
    85. GridBagConstraints gridBagConstraints16= new GridBagConstraints();
    86. gridBagConstraints16.gridx=0;
    87. gridBagConstraints16.gridy=8;
    88. gridBagConstraints16.insets=new Insets(0, 0, 0, 5);
    89. label8=new JLabel("经办人");
    90. leftPanel.add(label8, gridBagConstraints16);
    91. GridBagConstraints gridBagConstraints17= new GridBagConstraints();
    92. gridBagConstraints17.gridx=1;
    93. gridBagConstraints17.gridy=8;
    94. gridBagConstraints17.insets=new Insets(0, 0, 0, 5);
    95. gridBagConstraints17.weightx=1.0;
    96. gridBagConstraints17.fill=GridBagConstraints.HORIZONTAL;
    97. field8=new JTextField();
    98. leftPanel.add(field8, gridBagConstraints17);
    99. GridBagConstraints gridBagConstraints18= new GridBagConstraints();
    100. gridBagConstraints18.gridx=0;
    101. gridBagConstraints18.gridy=9;
    102. gridBagConstraints18.insets=new Insets(0, 5, 0, 0);
    103. label9=new JLabel("销售日期");
    104. leftPanel.add(label9, gridBagConstraints18);
    105. GridBagConstraints gridBagConstraints19= new GridBagConstraints();
    106. gridBagConstraints19.gridx=1;
    107. gridBagConstraints19.gridy=9;
    108. gridBagConstraints19.insets=new Insets(0, 0, 0, 5);
    109. gridBagConstraints19.weightx=1.0;
    110. gridBagConstraints19.fill=GridBagConstraints.HORIZONTAL;
    111. field9=new JTextField();
    112. leftPanel.add(field9, gridBagConstraints19);

    七、右侧面板设置背景图片

    Shan类增加

    构造方法增加

    先拿到文件下的图片并转换为ImageIcon,然后设置图片缩放大小,把图片放在面板组件上,面板由图片大小决定。

    1. URL url = this.getClass().getResource("011.jpg");
    2. ImageIcon icon = new ImageIcon(url);
    3. Image image = icon.getImage().getScaledInstance(100,220,3);
    4. icon = new ImageIcon(image);
    5. JLabel label = new JLabel();
    6. label.setSize(icon.getIconWidth(),icon.getIconHeight());
    7. label.setVerticalAlignment(SwingConstants.BOTTOM);
    8. label.setIcon(icon);
    9. rightPanel.add(label,BorderLayout.CENTER);

    八、增加“销售”“取消”按钮

    Shan类增加

    1. public JButton button2;//销售按钮
    2. public JButton button3;

    构造方法增加

    创建一个面板设置为边框布局,将此面板设置为上一面板的北部区域,将两个按钮添加。

    1. JPanel panel = new JPanel();
    2. panel.setOpaque(false);
    3. panel.setLayout(new BorderLayout());
    4. rightPanel.add(panel,BorderLayout.NORTH);
    5. button2 = new JButton("销售");
    6. button3 = new JButton("取消");
    7. panel.add(button2,BorderLayout.CENTER);
    8. panel.add(button3,BorderLayout.SOUTH);

    至此,“删除内容”布局已经完成,下面将要完成具体功能。

  • 相关阅读:
    三分钟学习一个python小知识8-----------我的对python中pandas的理解--补充,
    【从零开始学习 SystemVerilog】8.10、SystemVerilog 约束—— Static Constraints(静态约束)
    专利-分析方法总结
    《InnoDB引擎七》InnoDB关键特性-插入缓存
    Mysql技术文档--之Mysql联查使用-快速了解联查看我这一篇就够了!国庆开卷!
    企业架构LNMP学习笔记28
    【无标题】
    C++面试题(丝)-计算机网络部分(1)
    C++实现:实现一个函数,接受一个n x n的矩阵并返回其行列式的值 某知名上市公司笔试题
    编译原理实验-LR语法分析
  • 原文地址:https://blog.csdn.net/Tir_zhang/article/details/125436058