三.登陆界面开发

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;
}
}

}
在Android开发中,集成微信和QQ登录通常涉及到使用第方提供的SDK,因为这两个平台提供了官方的开放接口供开发者接入。以下是集成微信和QQ登录的基本步骤: 1. **注册账号**:首先,你需要在微信开放平台(https://open.weixin.qq.com)和QQ开放平台(https://open.qq.com)上创建开发者账户,并申请相应的AppID。 2. **下载SDK**:从各自的官网下载微信Android SDK(WeChatForAndroid)和QQ登录SDK。 3. **添加依赖**:将SDK添加到你的项目中,通常是通过Gradle库管理或者将jar文件添加到项目的libs目录。 4. **配置权限**:在AndroidManifest.xml中添加必要的权限,如`<uses-permission android:name="android.permission.INTERNET" />`。 5. **初始化SDK**:在应用启动时,初始化微信和QQ的登录模块,设置回调和应用信息。 6. **调用授权登录**:当用户需要登录时,调用SDK提供的`login()`或`authorize()`方法,会跳转到相应平台的授权页面。 7. **处理回调**:在接收到用户的登录结果后,通过回调处理机制获取code、access_token等信息。 8. **交换token**:使用获取到的code换取长期有效的token,用于后续的API调用。 9. **保存用户信息**:将登录状态和用户信息存储在本地,比如SharedPreferences或数据库。 **相关问题--:** 1. 需要哪些Android权限来集成微信和QQ登录? 2. 在授权成功后,如何将获取到的用户信息同步到本地? 3. 如何处理微信和QQ登录过程中可能出现的错误或异常情况?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值