• 软件杯-界面设计


    我们的界面设计分为3个部分:第一部分为个人用户信息的修改,但是由于时间的关系,我们只进行了界面的设计,没有能够进行后台数据库的连接;第二部分是我们的最重要的识别界面,在这个界面中,我们有文件夹的选择按钮,识别按钮,有结果输出框和时间和个数的输出框;第三部分为结果的打印部分。

    由于我们的后台代码为JAVA代码,所以我们的界面用SWing来写,我们先写了一个整体的背景框架:

    代码:

    // *********************************************  
        // 第一步声明程序所需控件  
        // *********************************************  
        JFrame frame;  
        // 上边面板的控件  
        JButton btn_add, btn_query_stu, btn_query_cnt;  
        JPanel panel_head, panel_add, panel_query_stu, panel_query_cnt;  
        // 下面第二个面板的控件  
        JLabel label_query_time,label_query_number;  
        JTextField text_time,text_num,text_in;   
        JTextArea text_result;
        JButton btn_Ok,btn_shibie;  
        JScrollPane jsp;
        // 下面第一个面板的控件  
        JButton btn_submit;  
        JLabel label_name, label_number, label_mark;  
        JTextField text_name, text_number, text_mark, text_sta;  
        // 下面第三个面板的控件  
        JLabel label;  
    JTextField text_cnt;  
    
      // ********************************  
            // 第二步设置 底层窗口属性  
            // ********************************  
            // 得到当前屏幕的尺寸  
            Toolkit kit = Toolkit.getDefaultToolkit();  
            Dimension screenSize = kit.getScreenSize();  
            int screenWidth = screenSize.width;  
            int screenHeight = screenSize.height;  
            // frame指底层窗口  
            frame = new JFrame("图片文字提取");  
            frame.setBounds(screenWidth / 3, screenHeight / 4, 450, 300); // 设置位置及大小  
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            frame.getContentPane().setBackground(Color.lightGray);  
            LayoutManager layoutMgr = null;
            frame.getContentPane().setLayout(new BorderLayout()); // 使用绝对布局  
            frame.setResizable(false); // 设置窗口大小不可变  
      
            
            // 上层面板  
            panel_head = new JPanel();  
            panel_head.setBounds(2, 0, 440, 40);  
            panel_head.setBackground(Color.lightGray);  
            panel_head.setVisible(true);  
            panel_head.setLayout(new GridLayout(1, 3, 2, 0));  
      
            btn_add = new JButton("个人信息");  
            btn_add.setFont(new Font("宋体", 1, 12)); // 设置字体 格式 大小  
            btn_add.setVisible(true);  
            panel_head.add(btn_add);  
            btn_add.addActionListener(new ActionListener() {  
                public void actionPerformed(ActionEvent e) {  
                    panel_add.setVisible(true);  
                    panel_query_stu.setVisible(false);  
                    panel_query_cnt.setVisible(false);  
                }  
            });  
      
            btn_query_stu = new JButton("图片识别");  
            btn_query_stu.setVisible(true);  
            panel_head.add(btn_query_stu);  
            btn_query_stu.addActionListener(new ActionListener() {  
                public void actionPerformed(ActionEvent e) {  
                    panel_add.setVisible(false);  
                    panel_query_stu.setVisible(true);  
                    panel_query_cnt.setVisible(false);  
                }  
            });  
      
            btn_query_cnt = new JButton("文字打印");  
            btn_query_cnt.setVisible(true);  
            panel_head.add(btn_query_cnt);  
            btn_query_cnt.addActionListener(new ActionListener() {  
                public void actionPerformed(ActionEvent e) {  
                    panel_add.setVisible(false);  
                    panel_query_stu.setVisible(false);  
                    panel_query_cnt.setVisible(true);  
     
                }  
            });  

    第一部分效果图:

    代码:

    Font font = new Font("宋体", 1, 16);  
      
            panel_add = new JPanel();  
            panel_add.setBounds(2, 45, 440, 225);  
            panel_add.setBackground(Color.lightGray);  
            panel_add.setLayout(new GridLayout(4, 2, 20, 20));  
      
            label_number = new JLabel("ID:");  
            label_number.setFont(font);  
            label_number.setHorizontalAlignment(SwingConstants.CENTER);  
            panel_add.add(label_number);  
      
            text_number = new JTextField();  
            text_number.setFont(font);  
            panel_add.add(text_number);  
      
            label_name = new JLabel("姓名:");  
            label_name.setFont(font);  
            label_name.setHorizontalAlignment(SwingConstants.CENTER);  
            panel_add.add(label_name);  
      
            text_name = new JTextField();  
            text_name.setFont(font);  
            panel_add.add(text_name);  
      
            label_mark = new JLabel("密码:");  
            label_mark.setFont(font);  
            label_mark.setHorizontalAlignment(SwingConstants.CENTER);  
            panel_add.add(label_mark);  
      
            text_mark = new JTextField();  
            text_mark.setFont(font);  
            panel_add.add(text_mark);  
      
            btn_submit = new JButton("提交");  
            btn_submit.setFont(font);  
            btn_submit.addActionListener(new ActionListener() {  
                public void actionPerformed(ActionEvent e) {  
                    String s = text_mark.getText();  
                }  
            });  
            panel_add.add(btn_submit);  
      
            text_sta = new JTextField();  
            panel_add.add(text_sta);  
      
            panel_add.setVisible(true);  
            frame.getContentPane().add(panel_add);  

    第二部分效果图

    代码:

     panel_query_stu = new JPanel();  
            panel_query_stu.setBounds(2, 45, 440, 225);  
            panel_query_stu.setBackground(Color.lightGray);  
            panel_query_stu.setLayout(layoutMgr);  
      
            label_query_time = new JLabel("识别时间:");  
            label_query_time.setBounds(370, 60, 150, 40);  
            panel_query_stu.add(label_query_time);  
      
            label_query_number = new JLabel("图片个数:");  
            label_query_number.setBounds(370, 130, 150, 40);  
            panel_query_stu.add(label_query_number);  
            
            text_in = new JTextField();  
            text_in.setBounds(160, 10, 180, 40);  
            panel_query_stu.add(text_in);  
      
            
           
            
            text_result = new JTextArea(50,50);  
            text_result.setBounds(10, 60, 350, 160);
            text_result.setLineWrap(true);
            text_result.setWrapStyleWord(true);
            text_result.setText("企业注册号                                                   企业名称");
            JScrollPane jsp=new JScrollPane(text_result);
            jsp.setBounds(350,60,10,100);
            panel_query_stu.add(jsp);
            
            
            panel_query_stu.add(text_result);  
      
            text_time = new JTextField();   
            text_time.setBounds(370, 90, 150, 40);  
             
            panel_query_stu.add(text_time);  
      
            text_num = new JTextField(); 
            text_num.setBounds(370, 160, 150, 40);  
            
            panel_query_stu.add(text_num);  
            panel_query_stu.add(btn_Ok);  
      
            panel_query_stu.setVisible(false);  
            frame.getContentPane().add(panel_query_stu);  

    第二部分的查询界面的设计效果图

    代码;

    btn_shibie = new JButton("选择文件夹:");  
            btn_shibie.setFont(font);  
            btn_shibie.setBounds(10, 10, 140, 40);  
            btn_shibie.addActionListener(new ActionListener() { 
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                JFileChooser jfc=new JFileChooser();
                jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
                jfc.showDialog(new JLabel(), "选择");
                File file=jfc.getSelectedFile();
                long i=file.listFiles().length;
                String s=String.valueOf(i);
                text_in.setText(file.getAbsolutePath());
                text_num.setText(s);
                /*if(file.isDirectory()){
                    System.out.println("文件夹:"+file.getAbsolutePath());
                }else if(file.isFile()){
                    System.out.println("文件:"+file.getAbsolutePath());
                }*/
            }
            }
            )

    第三部分效果图;

    代码:

     // // 下层面板  
             panel_query_cnt = new JPanel();  
             panel_query_cnt.setBounds(2, 45, 440, 225);  
             panel_query_cnt.setBackground(Color.lightGray);  
             panel_query_cnt.setLayout(layoutMgr);  
               
             label = new JLabel("表格输出打印:");  
             label.setBounds(10, 10, 150, 40);  
             label.setFont(font);  
             panel_query_cnt.add(label);  
               
             text_cnt = new JTextField();   
             text_cnt.setBounds(10, 60, 420, 140);  
             panel_query_cnt.add(text_cnt);  
             text_cnt.setText("表格文件存于E盘目录下,名称为:输出"); 
             
             frame.getContentPane().add(panel_query_cnt);  
             panel_query_cnt.setVisible(false);  
      
            // 需添加完组件后设置可见  
            frame.setVisible(true); // 设置窗口可见  
      
    }  

    结果输出效果图:

    结论:此次的界面设计是我第一次使用swing进行较为大型的界面设计,不足在于我没能实现相对布局的设定,只实现了绝对布局。

  • 相关阅读:
    领域驱动设计概念(Domain-driven Design), Flower(响应式微服务框架)
    主流RPC框架通讯协议实现原理与源码解析
    响应式微服务框架Flower——快速上手
    netty源码-server端绑定端口流程
    ubuntu 20.04版本更新软件源为国内源(清华、网易、阿里云等等)
    ubuntu20.04源码安装nginx
    docker环境下Java获取cpu核心数不准确,实际上是宿主机的cpu核心数
    利用docker快速搭建创建开发环境
    mac配置python环境
    Apache Maven-创建项目
  • 原文地址:https://www.cnblogs.com/baiyue/p/9306796.html
Copyright © 2020-2023  润新知