`
612星球
  • 浏览: 9347 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

三.登陆界面开发

 
阅读更多
1.构造函数(构造方法或者构造器)
  如果要实例化对象,就必须要使用构造函数。
  实例化对象的格式:
          类名  对象名  = new 构造函数名(参数值,...);

  构造函数的格式:
      public 构造函数名(参数类型 参数名,...){
          //代码体
      }
      注意:构造函数名必须和类名完全相同
     
  构造函数和普通方法的区别:
  1.构造函数不需要定义返回值类型,普通方法必须要定义。
    public 返回值类型 方法名(参数类型 参数名,...){
//代码体
    }
  2.构造函数名必须和类名完全相同,普通方法可以任意定义。
  3.构造函数是用来实例化对象的,普通方法不能用来实例化对象,只是执行对象的某一个行为。
  4.每调用一次构造函数就会实例化一个新的对象,普通方法执行的还是对象的一个行为

  java会给每一个类提供一个默认的构造函数。
  如果自定义了构造函数,则默认的构造函数无法在继续使用,默认的被覆盖了。

2.方法重载
  要满足的条件:
1.方法名必须完全相同。
2.方法所带的参数个数或参数类型要不同。

实现重载后,如果调用方法呢?
根据参数个数以及参数类型来决定的。

3.this关键字
当参数名和属性名相同的时候,就是用this关键字来区分,加了this的表示属性,没有加的表示参数
this关键字表示的是当前的对象,当前调用方法的对象名是哪一个,那么this就表示该对象。(相当于“我”)

4.值传递和引用传递


5.swing介绍
  swing是Java的图形界面类(JAVA API类)。
  swing是一采用Java语言编写的图形界面类,基于awt的基础上构建的。
  java的图形界面有两部分:
1.awt
2.swing

图形界面分为三类:
1.容器类
能装在其他的组件或者容器的类
javax.swing.JFrame           窗体类
javax.swing.JPanel           面板类

2.组件类
独立的,不能添加其他的组件或者容器的类
javax.swing.JLabel           标签类
javax.swing.JTextField       文本输入框
javax.swing.JPasswordField   密码输入框
javax.swing.JButton          按钮类
javax.swing.JComboBox        下拉列表框
javax.swing.JCheckBox        多选框

3.布局类
美化组件的位置
java.awt.FlowLayout          流式布局类
Java的布局类主要位于java.awt和javax.swing包下,所有以Layout结尾的类都是的。
java有多少种布局类,分别是什么?

6.登录界面实现
搭积木的过程:
1.定义一个类
2.主函数
3.定义一个初始化界面的方法
4.在方法中创建一个JFrame对象,设置属性。
5.实例化一些组件对象,并且添加到窗体上,形成一个登录界面
6.设置窗体为可见
7.在主函数中实例化类的对象,并调用初始化界面的方法。

练习:
1.实现一个登录界面
//定义一个登录界面类
public class Login{

    //主函数
    public static void main(String [] args){
       
    //实例化Login类的对象
    Login login = new Login();
    //调用初始化登录界面的方法
    login.init();
    }
      
    //初始化界面的方法
    public void init(){
        //实例化一个窗体类对象
        javax.swing.JFrame jf = new javax.swing.JFrame("QQ2011");
        //设置窗体的大小
        jf.setSize(300,400);
        //设置窗体不能调整大小
        jf.setResizable(true);
        //设置点击关闭按钮时退出程序
        jf.setDefaultCloseOperation(3);
        //实例化一个布局对象
        java.awt.FlowLayout fl= new java.awt.FlowLayout();
        //设置窗体的流式布局
        jf.setLayout(fl);

               
        //实例化一个账号标签对象
        javax.swing.JLabel lbName = new javax.swing.JLabel("账号:");
        //将账号标签对象添加到窗体上
        jf.add(lbName);


        //实例化一个文本输入框对象
        javax.swing.JTextField name = new javax.swing.JTextField(20);                     
        //将输入框对象添加到窗体上
jf.add(name);

        //实例化一个密码标签对象
javax.swing.JLabel lblPwd = new javax.swing.JLabel("密码:");
//将密码标签对象添加到窗体上
jf.add(lblPwd);

        //实例化一个文本输入框对象
        javax.swing.JTextField txtPwd = new javax.swing.JTextField(20);              
        //将输入框对象添加到窗体上
jf.add(txtPwd);

        //实例化一个按钮对象
javax.swing.JButton btnLogin = new javax.swing.JButton("登录");
//添加到窗体上
jf.add(btnLogin);

//设置窗体可见
jf.setVisible(true);
    }

}


2.实现一个计算器界面并实现该计算器的加法运算
LoginCounter.java

package cn.jiao1.counter;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class LoginCounter extends JFrame{

public static void main(String[] args) {
LoginCounter logincounter = new LoginCounter();
logincounter.init();
}

//初始化界面的方法
public void init() {
this.setTitle("计算器录界面");
this.setSize(290, 200);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);

//设置窗体的布局为流式布局
this.setLayout(new FlowLayout());

//实例化一个图标对象
ImageIcon image = new ImageIcon("logincounter.jpg");
//实例化一个标签对象,并且将图标对象作为参数
JLabel lblImage = new JLabel(image);
lblImage.setPreferredSize(new Dimension(290,30));
//将标签对象添加到窗体上
this.add(lblImage);

// 实例化账号对象添加到窗体上
JLabel lblName = new JLabel("                                     账号:");
this.add(lblName);
// 实例化账号输入框对象,并添加到窗体上
JTextField txtName = new JTextField(20);
this.add(txtName);

// 实例化密码对象添加到窗体上
JLabel lblPwd = new JLabel("密码:");
this.add(lblPwd);
// 实例化密码输入框对象,并添加到窗体上
JTextField txtPwd = new JTextField(20);
this.add(txtPwd);

//实例化一个登录按钮对象,并且添加到窗体上
JButton btnLogin = new JButton("登录");
this.add(btnLogin);

//实例化一个事件处理者对象
LoginCounterListener ll = new LoginCounterListener(txtName,txtPwd);
//登录按钮是事件源,给事件源添加一个监听动作事件的方法
btnLogin.addActionListener(ll);

this.setVisible(true);
}
}

LoginCounterListener.java

package cn.jiao1.counter;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class LoginCounterListener implements ActionListener {
private JTextField txtName;
private JTextField txtPwd;

public LoginCounterListener(JTextField txtName, JTextField txtPwd) {
// 赋值
this.txtName = txtName;
this.txtPwd = txtPwd;
}

public void actionPerformed(ActionEvent e) {
// 获取账号
String name = txtName.getText();
// 获取密码
String pwd = txtPwd.getText();

// 判断是否相等
if (name.equals(pwd)) {
Counter counter = new Counter();
counter.init();
} else {
JOptionPane.showMessageDialog(null, "账号或密码错误,请重新输入!");
}

}

}


Counter.java

package cn.jiao1.counter;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class LoginCounterListener implements ActionListener {
private JTextField txtName;
private JTextField txtPwd;

public LoginCounterListener(JTextField txtName, JTextField txtPwd) {
// 赋值
this.txtName = txtName;
this.txtPwd = txtPwd;
}

public void actionPerformed(ActionEvent e) {
// 获取账号
String name = txtName.getText();
// 获取密码
String pwd = txtPwd.getText();

// 判断是否相等
if (name.equals(pwd)) {
Counter counter = new Counter();
counter.init();
} else {
JOptionPane.showMessageDialog(null, "账号或密码错误,请重新输入!");
}
}
}


CounterListener.java

package cn.jiao1.counter;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JTextField;

public class CounterListener implements ActionListener {

private JTextField txtNumber;
private int value1,value2,count=0;
private String temp;

public CounterListener(JTextField txtNumber) {
this.txtNumber = txtNumber;
}

public void actionPerformed(ActionEvent e) {
//获取按钮上的值
if(count == 0){
value1 = Integer.parseInt(e.getActionCommand());
}else if(count == 1){
temp = e.getActionCommand();
}else if(count == 2){
value2 = Integer.parseInt(e.getActionCommand());
}
count++;
if(e.getActionCommand().equals("=")){
if(temp.equals("+")){
int value = value1+value2;
txtNumber.setText(value1+"+"+value2+"="+value);
}
count=0;
}
}

}




分享到:
评论

相关推荐

    第三章:登陆界面开发总结

    NULL 博文链接:https://heweiding155.iteye.com/blog/1167983

    android实现登陆界面

    我们都知道一个App从启动到进入主界面到退出登陆(切换账号)基本上确定了一个App 的交互风格;而对于开发工程师来说,把这几个页面实现了并实现数据的闭环处理,一个app 的框架也就大致实现了。一般的我们关注的几个...

    用VB实现的学生宿舍管理系统

    4.1 登陆界面图...............................................20 4.2 系统主界面图.......................................

    c/s三层实现登陆界面

    vs2010三层登录实例,采用了c#语言的开发

    作业提交与批改系统的设计与实现(论文+源码)-kaic.doc

    目 录 摘要. 第一章 绪论. 1.1开发背景. ...4.1登陆界面. 4.2学生注册界面. 4.3作业上传界面. 4.4作业管理. 4.5课程管理. 第五章 系统测试. 5.1测试范围与主要内容. 5.2测试结果. 结论 参考文献. 致 谢.

    ZABBIX从入门到精通v3.0.1+-+运维生存时间(2016).pdf

    第三章:快速上手 33 Zabbix 中文语言 33 Zabbix 中文乱码 35 zabbix 监控第一台服务器 37 Zabbix 用户管理 41 第四章: zabbix 配置 48 配置简介 48 zabbix 主机与组配置 49 zabbix 资产清单 inventory 管理 53 ...

    城镇公交车管理系统毕业设计

    3. 前台登陆界面 15 4. 会员中心界面 15 5. 后台管理审核界面 16 6. 会员发布寻物启事界面 17 7. 公交查询流程图 18 7. 查询线路界面 19 8. 线路维护界面 20 9. 管理员维护界面 20 第六章 总结 21 致谢 21 参考文献...

    基于SSM的智慧校园(源码+数据库)100102

    1.登陆界面:用户名,密码,需要验证码验证,分三个用户普通用户、商家、管理员三个界面。注册界面需要分角色, 2.普通用户界面:个人中心,交易记录,账户信息、充值 3.商家界面:个人中心、交易界面、交易记录查询...

    校园订单管理系统.Java大作业..zip

    登陆界面 注册界面 用户界面 管理员界面 厨师界面 送货界面 消费者 厨师 快递小哥 店主 同时操作需要使用线程同步 服务器采用javaweb。servlet进行开发。 客户端使用gui进行开发。通过http请求进行请求数据。 ...

    WorkFlow Specify

    流程运转功能..........................................................................5 1. 串行路由(Sequence Routing)............................................................................5 ...

    MyNotePad.zip(android开发密码记事本)

    4.登陆成功后进入到主界面mainactivity,主界面调用mainActivity.layout,主界面包含元素,功能栏按钮,增加文字日志,增加视频日志,以及显示已经存在的日志,首先主界面显示的已经存在的日志是通过cell.xml格式来...

    (UI界面优美模板项目大全)PyQT/PySide 超精美界面源码合集.zip

    包含:音乐界面客户端,管理系统客户端,CAD的QT客户端,虚拟币交易所监控客户端,数据分析的客户端,流程图客户端,自动化测试用例编辑器,基于pyside架构的适合自定义开发的客户端,登陆界面客户端,游戏平台...

    三层架构最简单例子源码 SUMExamplesSanCengJG.rar

    三层架构最简单例子源码 ... 1、开发环境为Visual Studio 2010,使用.net 2.0开发。 2、管理员登陆名密码均为:51aspx 3、默认数据库连接字符串在App.config配置文件中修改 4、DB文件夹中是数据库文件,附加即可

    JAVA聊天室实验报告.doc

    三、需求分析 开发一个类似QQ 的聊天室系统,即WeChat聊天系统。该系统应具有如下功能: 1. 用户注册、登录 2. 群聊; 3. 私聊; 4. 服务器发送系统消息; 5. 服务器踢人; 6. 保存日志; 7. 保存聊天信息; 四、...

    jsp运动管理系统JSP java 编程myeclpse开发 mysql数据库

    一、源码特点 jsp运动管理系统 是一套完善的WEB...三、注意事项 1、管理员账号:admin密码:admin 数据库配置文件DBO.java 2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为jspyundh.sql,使用java语言开发。

    JAVA课程设计之赛马游戏.doc

    本次使用的是eclipse开发软件。 以下就给出这次课题设计的题目: 模拟赛马比赛。 1.2 课题分析 a.课设题目:模拟赛马比赛 内容: 1. 设计一个模拟赛马比赛软件,比赛显示赛马过程,每匹马每个时刻的加速度都是随 机...

    ios 界面登陆 demo

    ios的界面登陆demo示例,可以存储用户密码,实现注册,登陆的简单功能,仅供初学者学习参考

    基于Android+Springboot+Mybatis+Mysql的个人生活APP设计.zip

    传统的Spring去做Java EE开发中,大量的XML文件存在于项目之中,导致JavaEE项目变得慢慢笨重起来,繁琐的配置和整合第三方框架的配置,导致开发和部署效率的降低.而使用Springboot只需要少许的配置代码,大大提升了编程的...

    图书馆数据库管理系统

    3.3.1 系统登陆界面设计分析……………………………………………………13 3.3.2 系统主界面设计分析………………………………………………………14 3.3.3 图书管理系统界面分析………………………………………………...

Global site tag (gtag.js) - Google Analytics