zoukankan      html  css  js  c++  java
  • JFrome 登陆/注册/回显无数据库连接小程序

    当离开RCP插件区重新回顾一下JFrame窗口程序的标签、页面间的跳转。

    完成一个登陆、注册界面。(界面完成后练习输入输出流,将前台的注册信息保存到一个文件夹下的.txt文件中)

    首先向通过JFrame写出一个登陆窗体来,然后给注册按钮绑定actionListener监听。

    以下为login页面

     1 package demo;
     2 
     3 import java.awt.GridLayout;
     4 import java.awt.event.ActionEvent;
     5 import java.awt.event.ActionListener;
     6 
     7 import javax.swing.JButton;
     8 import javax.swing.JFrame;
     9 import javax.swing.JLabel;
    10 import javax.swing.JPanel;
    11 import javax.swing.JPasswordField;
    12 import javax.swing.JTextField;
    13 //导入必要的包
    14 
    15 public class Demo_login extends JFrame{
    16    
    17     JTextField jTextField ; //定义文本框组件
    18     JPasswordField jPasswordField; //定义密码框组件
    19     JLabel jLabel1,jLabel2;
    20     JPanel jp1,jp2,jp3;
    21     JButton jb1,jb2,jb3;  //创建按钮
    22     public Demo_login(){
    23         jTextField = new JTextField(12);
    24         jPasswordField = new JPasswordField(13);
    25         jLabel1 = new JLabel("用户名");
    26         jLabel2 = new JLabel("密码");
    27         jb1 = new JButton("确认");
    28         jb2 = new JButton("取消");
    29         jb3 = new JButton("注册");
    30         jp1 = new JPanel();
    31         jp2 = new JPanel();
    32         jp3 = new JPanel();
    33         
    34         //设置布局    
    35         this.setLayout(new GridLayout(3,1));
    36         
    37         jp1.add(jLabel1); 
    38         jp1.add(jTextField);//第一块面板添加用户名和文本框 
    39         
    40         jp2.add(jLabel2);
    41         jp2.add(jPasswordField);//第二块面板添加密码和密码输入框
    42         
    43         jp3.add(jb1);
    44         jp3.add(jb2);
    45         jp3.add(jb3);//第三块面板添加确认和取消
    46         jb3.addActionListener(new ActionListener() {
    47             @Override
    48             public void actionPerformed(ActionEvent e) {
    49                 Demo_add();    
    50                 }
    51 
    52             public void Demo_add() {
    53                 new Demo_add();
    54                 
    55             }
    56         });
    57        
    58      
    59       
    60         //        jp3.setLayout(new FlowLayout());    //因为JPanel默认布局方式为FlowLayout,所以可以注销这段代码.
    61         this.add(jp1);
    62         this.add(jp2);
    63         this.add(jp3);  //将三块面板添加到登陆框上面
    64         //设置显示
    65         this.setSize(300, 200);
    66         //this.pack();
    67         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    68         this.setVisible(true);
    69         this.setTitle("登陆");
    70          
    71     }
    72     public static void main(String[] args){
    73         new Demo_login();
    74         
    75     }
    76 }

    下一步规划注册信息和完成注册界面

      1 package demo;
      2 
      3 
      4 import java.awt.Color;
      5 import java.awt.FlowLayout;
      6 import java.awt.Graphics;
      7 import java.awt.Image;
      8 import java.awt.event.ActionEvent;
      9 import java.awt.event.ActionListener;
     10 
     11 import javax.swing.Box;
     12 import javax.swing.ButtonGroup;
     13 import javax.swing.ImageIcon;
     14 import javax.swing.JButton;
     15 import javax.swing.JFrame;
     16 import javax.swing.JLabel;
     17 import javax.swing.JPanel;
     18 import javax.swing.JRadioButton;
     19 import javax.swing.JTextArea;
     20 import javax.swing.JTextField;
     21 
     22 
     23 public class Demo_add extends JFrame{
     24 
     25     public static void main(String[] args) {
     26         new Demo_add();
     27     }
     28 
     29     String [][] arr = new  String [100][5];
     30     JLabel id,name,age, gender,introduction;
     31     ButtonGroup bg;
     32     JRadioButton female,male;
     33     JTextArea textArea;
     34     JTextField tf_id,tf_name,tf_age,jf_introduction;
     35     JButton btn_register;
     36     MyPanel jp;
     37     Box box_id,box_name,box_age,box_gender,box_introduction,baseBox;
     38 
     39     public Demo_add() {
     40 
     41         setVisible(true);
     42         setSize(400, 450);
     43         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     44         instantiateFunction();
     45         addFunction();
     46         
     47 
     48     }
     49 
     50     public void instantiateFunction(){
     51         jp = new MyPanel(new ImageIcon("./src/picture/pic16.jpg").getImage());
     52         baseBox = Box.createVerticalBox();
     53         box_id = Box.createHorizontalBox();
     54         box_name = Box.createHorizontalBox();
     55         box_age = Box.createHorizontalBox();
     56         box_gender = Box.createHorizontalBox();
     57         box_introduction = Box.createHorizontalBox();
     58         btn_register = new JButton("注册");    
     59         tf_id = new JTextField(10);
     60         tf_name = new JTextField(10);
     61         tf_age = new JTextField(10);
     62         bg = new ButtonGroup();
     63         female = new JRadioButton("女");
     64         male = new JRadioButton("男");
     65         textArea = new JTextArea(9,20);
     66         listenerFunction();
     67 
     68     }
     69 
     70     /**
     71      * 实现页面跳转和数组传递
     72      * */
     73 
     74     public void listenerFunction(){
     75         btn_register.addActionListener(new ActionListener() {
     76 
     77             @Override
     78             public void actionPerformed(ActionEvent e) {
     79                 
     80                 for (int i = 0; i < arr.length; i++) {
     81                     //先做一个判断,如果ID不为空,则传过去
     82                     if(arr[i][0]==null || arr[i][0].equals("")){
     83                         arr[i][0] =tf_id.getText();
     84                         arr[i][1] =tf_name.getText();
     85                         arr[i][2] =tf_age.getText();
     86                         
     87                         if(male.isSelected()){
     88                             arr[i][3] = male.getText();
     89                         }else{
     90                             arr[i][3] = female.getText();
     91                         }
     92                         arr[i][4] =textArea.getText();
     93                         
     94                         break;
     95                     }
     96                 }
     97                 new Demo_addMessage(arr);
     98 
     99             }
    100         });
    101     }
    102 
    103     public void addFunction(){
    104         add(jp);
    105         box_id.add(new JLabel("ID:       "));
    106         box_id.add(tf_id);
    107 
    108         box_name.add(new JLabel("姓名:  "));
    109         box_name.add(tf_name);
    110 
    111         box_age.add(new JLabel("年龄:  "));
    112         box_age.add(tf_age);
    113         
    114         box_gender.add(new JLabel("性别:  "));
    115         bg.add(male);
    116         bg.add(male);
    117         box_gender.add(male);
    118         box_gender.add(female);    
    119          
    120         box_introduction.add(textArea);
    121 
    122 
    123         baseBox.add(Box.createVerticalStrut(15));
    124         baseBox.add(box_id);
    125         baseBox.add(Box.createVerticalStrut(15));
    126         baseBox.add(box_name);
    127         baseBox.add(Box.createVerticalStrut(15));
    128         baseBox.add(box_age);
    129         baseBox.add(Box.createVerticalStrut(15));
    130         baseBox.add(box_gender);
    131         baseBox.add(Box.createVerticalStrut(15));
    132         baseBox.add(new JLabel("个人简介:  "));
    133         baseBox.add(box_introduction);
    134         baseBox.add(Box.createVerticalStrut(15));
    135         baseBox.add(btn_register);
    136         jp.add(baseBox);
    137         
    138     }
    139 }
    140 
    141 class MyPanel extends JPanel{
    142     Image img;
    143     public MyPanel(Image img) {
    144         this.img = img;
    145     }
    146     @Override
    147     protected void paintComponent(Graphics g) {
    148         super.paintComponent(g);
    149         g.drawImage(img,0,0, this.getWidth(), this.getHeight(), this);
    150     }
    151 }

    正常开发中注册一般会伴随着回显信息的,因为是对JFrame的熟悉所以数据不是来自数据库,我们直接对这个界面中输入的数据回显

     1 package demo;
     2 
     3 
     4 
     5 
     6 
     7 
     8 import javax.swing.ImageIcon;
     9 import javax.swing.JFrame;
    10 import javax.swing.JPanel;
    11 import javax.swing.JScrollPane;
    12 import javax.swing.JTable;
    13 
    14 
    15 
    16 public class Demo_addMessage extends JFrame {
    17 
    18     
    19     JTable table;
    20     JPanel jp;
    21     //MyDate model;
    22     JTable tabel;
    23     ImageIcon img1,img2,img3;
    24     
    25     public Demo_addMessage(String [][] arr) {
    26         System.out.println("跳过来了");
    27         setVisible(true);
    28         setSize(500, 500);
    29         setTitle("保存信息界面");
    30         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    31         init(arr);
    32 
    33     }
    34 
    35     
    36     private void init(String [][] arr) {
    37         //标题数组
    38                 String [] columns = {"ID","姓名","年龄","性别","个人简介"};
    39 
    40                 //项目的相对路径./代表项目名称
    41                 /*img1 = new  ImageIcon("./src/picture/dm.png");
    42                 img2 = new  ImageIcon("./src/picture/pic12.jpg");
    43                 img3 = new  ImageIcon("./src/picture/pic2.jpg");*/
    44                 //model = new MyDate(arr,columns);
    45                 jp = new JPanel();
    46                 table = new JTable(arr,columns);//没有图片时的实例化
    47                 //table = new JTable(model);//存在图片时的实例化
    48                 table.setRowHeight(20);
    49 
    50                 JScrollPane scrollPanel = new JScrollPane(table);
    51                 jp.add(scrollPanel);
    52                 add(jp);
    53         
    54     }
    55 
    56 }

    到这儿JFrame的界面就简单完成了,下一步就是注册界面练习输入输出流。详情关注下一篇随笔~

  • 相关阅读:
    nginx配置反向代理
    hyperchain HVM使用java编写智能合约的编译、部署流程
    leetcode 140单词拆分Ⅱ
    bomblab phase5
    bomb lab 二三阶段
    2021暑假算法学习笔记(基础复习)#2
    2021暑假算法学习笔记(基础复习)#1
    O(logn)最长上升子序列并输出
    A Daily Topic # 7 阶乘的和(二进制/枚举)
    A Daily Topic # 6 星期几(模拟)
  • 原文地址:https://www.cnblogs.com/overlord-mp/p/5711763.html
Copyright © 2011-2022 走看看