软件杯-界面设计

2020-09-16 14:35发布

我们的界面设计分为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进行较为大型的界面设计,不足在于我没能实现相对布局的设定,只实现了绝对布局。

 

标签: