JFrome 登陆/注册/回显无数据库连接小程序
当离开RCP插件区重新回顾一下JFrame窗口程序的标签、页面间的跳转。
完成一个登陆、注册界面。(界面完成后练习输入输出流,将前台的注册信息保存到一个文件夹下的.txt文件中)
首先向通过JFrame写出一个登陆窗体来,然后给注册按钮绑定actionListener监听。
以下为login页面
package demo; import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
//导入必要的包 public class Demo_login extends JFrame{ JTextField jTextField ; //定义文本框组件
JPasswordField jPasswordField; //定义密码框组件
JLabel jLabel1,jLabel2;
JPanel jp1,jp2,jp3;
JButton jb1,jb2,jb3; //创建按钮
public Demo_login(){
jTextField = new JTextField(12);
jPasswordField = new JPasswordField(13);
jLabel1 = new JLabel("用户名");
jLabel2 = new JLabel("密码");
jb1 = new JButton("确认");
jb2 = new JButton("取消");
jb3 = new JButton("注册");
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel(); //设置布局
this.setLayout(new GridLayout(3,1)); jp1.add(jLabel1);
jp1.add(jTextField);//第一块面板添加用户名和文本框 jp2.add(jLabel2);
jp2.add(jPasswordField);//第二块面板添加密码和密码输入框 jp3.add(jb1);
jp3.add(jb2);
jp3.add(jb3);//第三块面板添加确认和取消
jb3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Demo_add();
} public void Demo_add() {
new Demo_add(); }
}); // jp3.setLayout(new FlowLayout()); //因为JPanel默认布局方式为FlowLayout,所以可以注销这段代码.
this.add(jp1);
this.add(jp2);
this.add(jp3); //将三块面板添加到登陆框上面
//设置显示
this.setSize(300, 200);
//this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setTitle("登陆"); }
public static void main(String[] args){
new Demo_login(); }
}
下一步规划注册信息和完成注册界面
package demo; import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField; public class Demo_add extends JFrame{ public static void main(String[] args) {
new Demo_add();
} String [][] arr = new String [100][5];
JLabel id,name,age, gender,introduction;
ButtonGroup bg;
JRadioButton female,male;
JTextArea textArea;
JTextField tf_id,tf_name,tf_age,jf_introduction;
JButton btn_register;
MyPanel jp;
Box box_id,box_name,box_age,box_gender,box_introduction,baseBox; public Demo_add() { setVisible(true);
setSize(400, 450);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
instantiateFunction();
addFunction(); } public void instantiateFunction(){
jp = new MyPanel(new ImageIcon("./src/picture/pic16.jpg").getImage());
baseBox = Box.createVerticalBox();
box_id = Box.createHorizontalBox();
box_name = Box.createHorizontalBox();
box_age = Box.createHorizontalBox();
box_gender = Box.createHorizontalBox();
box_introduction = Box.createHorizontalBox();
btn_register = new JButton("注册");
tf_id = new JTextField(10);
tf_name = new JTextField(10);
tf_age = new JTextField(10);
bg = new ButtonGroup();
female = new JRadioButton("女");
male = new JRadioButton("男");
textArea = new JTextArea(9,20);
listenerFunction(); } /**
* 实现页面跳转和数组传递
* */ public void listenerFunction(){
btn_register.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) { for (int i = 0; i < arr.length; i++) {
//先做一个判断,如果ID不为空,则传过去
if(arr[i][0]==null || arr[i][0].equals("")){
arr[i][0] =tf_id.getText();
arr[i][1] =tf_name.getText();
arr[i][2] =tf_age.getText(); if(male.isSelected()){
arr[i][3] = male.getText();
}else{
arr[i][3] = female.getText();
}
arr[i][4] =textArea.getText(); break;
}
}
new Demo_addMessage(arr); }
});
} public void addFunction(){
add(jp);
box_id.add(new JLabel("ID: "));
box_id.add(tf_id); box_name.add(new JLabel("姓名: "));
box_name.add(tf_name); box_age.add(new JLabel("年龄: "));
box_age.add(tf_age); box_gender.add(new JLabel("性别: "));
bg.add(male);
bg.add(male);
box_gender.add(male);
box_gender.add(female); box_introduction.add(textArea); baseBox.add(Box.createVerticalStrut(15));
baseBox.add(box_id);
baseBox.add(Box.createVerticalStrut(15));
baseBox.add(box_name);
baseBox.add(Box.createVerticalStrut(15));
baseBox.add(box_age);
baseBox.add(Box.createVerticalStrut(15));
baseBox.add(box_gender);
baseBox.add(Box.createVerticalStrut(15));
baseBox.add(new JLabel("个人简介: "));
baseBox.add(box_introduction);
baseBox.add(Box.createVerticalStrut(15));
baseBox.add(btn_register);
jp.add(baseBox); }
} class MyPanel extends JPanel{
Image img;
public MyPanel(Image img) {
this.img = img;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img,0,0, this.getWidth(), this.getHeight(), this);
}
}
正常开发中注册一般会伴随着回显信息的,因为是对JFrame的熟悉所以数据不是来自数据库,我们直接对这个界面中输入的数据回显
package demo; import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable; public class Demo_addMessage extends JFrame { JTable table;
JPanel jp;
//MyDate model;
JTable tabel;
ImageIcon img1,img2,img3; public Demo_addMessage(String [][] arr) {
System.out.println("跳过来了");
setVisible(true);
setSize(500, 500);
setTitle("保存信息界面");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
init(arr); } private void init(String [][] arr) {
//标题数组
String [] columns = {"ID","姓名","年龄","性别","个人简介"}; //项目的相对路径./代表项目名称
/*img1 = new ImageIcon("./src/picture/dm.png");
img2 = new ImageIcon("./src/picture/pic12.jpg");
img3 = new ImageIcon("./src/picture/pic2.jpg");*/
//model = new MyDate(arr,columns);
jp = new JPanel();
table = new JTable(arr,columns);//没有图片时的实例化
//table = new JTable(model);//存在图片时的实例化
table.setRowHeight(20); JScrollPane scrollPanel = new JScrollPane(table);
jp.add(scrollPanel);
add(jp); } }
到这儿JFrame的界面就简单完成了,下一步就是注册界面练习输入输出流。详情关注下一篇随笔~

JFrome 登陆/注册/回显无数据库连接小程序的更多相关文章
- JFrome 登陆/注册/回显/输出流小程序之二
- 微信小程序 人脸识别登陆模块
微信小程序---人脸识别登陆的实现 关键词:微信小程序 人脸识别 百度云接口 前言 这是一篇关于一个原创微信小程序开发过程的原创文章.涉及到的核心技术是微信小程序开发方法和百度云人脸识别接口.小程序的 ...
- 微信小程序-注册和第一个demo
第一篇 申请帐号 https://mp.weixin.qq.com/cgi-bin/registermidpage?action=index&lang=zh_CN 这里注册帐号,记得选小程序, ...
- Struts2标签<s:checkboxlist>回显问题
Struts2 checkboxlist回显问题中,说明两种方式,第一种方式很普遍,第二种则是个人根据现有资源加上尝试得来的成果,第二种主要是为个人笔记(其中相关知识点不一一介绍). 一.普通方法: ...
- 小程序&app 注册登录、绑定
前段时间开发中的一款产品,有小程序和app:小程序直接微信登录,app使用手机号+验证码注册,手机号+验证码/密码登录. 用户使用其中一套账号密码即可正常使用,不强制要求完善另一套账号.为避免同一用户 ...
- SpEL表达式注入漏洞学习和回显poc研究
目录 前言 环境 基础学习和回显实验 语法基础 回显实验 BufferedReader Scanner SpEL漏洞复现 低版本SpringBoot中IllegalStateException CVE ...
- 微信小程序开发者注册流程
一,首先打开浏览器,搜索微信公众平台 点击进入,此时还没有注册微信小程序开发账号,我们需要点击注册 进入注册页面,会出现四种账号,我们选择小程序账号 然后根据提示就可以进行注册了 注册时,需填写一下个 ...
- 微信小程序之注册和入门
一.注册 首先,在微信公众平台mp.weixin.qq.com上注册一个帐号. 小程序开放个人开发者申请注册,个人用户可访问微信公众平台,扫码验证个人身份后即可完成小程序帐号申请并进行代码开发. 这里 ...
- 微信小程序之微信登陆 —— 微信小程序教程系列(20)
简介: 微信登陆,在新建一个微信小程序Hello World项目的时候,就可以看到项目中出现了我们的微信头像,其实这个Hello World项目,就有一个简化版的微信登陆.只不过是,还没有写入到咱们自 ...
随机推荐
- 关于form.item不兼容的问题
form.item()能在IE下运行,在firefox中会报脚本错误,没有这个函数. 可以使用 Form.elements 方法得到 HTMLCollection 后再使用 item 方法获取表单内元 ...
- C#程序设计基础——类、对象、方法
类与对象 类 类是一种构造,通过使用该构造,用户可以将其他类型的变量.方法和事件组合在一起,从而创建自定义类型.类就像一个蓝图,它定义类型的数据和行为. 对象 定义类之后,便可通过将类加载到内存中来使 ...
- 揪出“凶手”——实战WinDbg分析电脑蓝屏原因
http://www.appinn.com/blue-screen-search-code/ 蓝屏代码查询器 – 找出蓝屏的元凶 11 文章标签: windows / 系统 / 蓝屏. 蓝屏代码查询器 ...
- YII 主题
heming是一个在Web应用程序里定制网页外观的系统方式.通过采用一个新的主题,网页应用程序的整体外观可以立即和戏剧性的改变. 在Yii,每个主题由一个目录代表,包含view文件,layout文件和 ...
- COJ 2106 road
road 难度级别: A: 编程语言:不限:运行时间限制:1000ms: 运行空间限制:131072KB: 代码长度限制:102400B 试题描述 某国有N个城市,这N个城市由M条双向道路连接.现 ...
- UVA-10735 - Euler Circuit(混合欧拉回路输出)
题意:给你一个图,有N个点,M条边,这M条边有的是单向的,有的是双向的. 问你能否找出一条欧拉回路,使得每条边都只经过一次! 分析: 下面转自别人的题解: 把该图的无向边随便定向,然后计算每个点的入度 ...
- 使用vs2010编译 Python \ SIP \ PyQt4
(1)先使用vs2010编译 Python http://www.cnblogs.com/fortwo/archive/2013/04/16/3023871.html 注意,若编译的为debug版的P ...
- 高效算法——G - 贪心
G - 贪心 Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status Desc ...
- bzoj 3572 [Hnoi2014]世界树(虚树+DP)
3572: [Hnoi2014]世界树 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 645 Solved: 362[Submit][Status] ...
- ltp工具使用配置
ltp是一个比较全的自然语言处理工具,可以用它进行分词.词性标注.语法分析等任务. ---- 准备 下载 下载ltp和ltp4j,在cmake官网下载并安装相应版本的cmake,并且下载ant. 构建 ...