*/
* Copyright (c) 2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名:text.java
* 作者:常轩
* 微信公众号:Worldhello
* 完成日期:2016年12月27日
* 版本号:V1.0
* 程序输入:无
* 程序输出:见运行结果
*/ /*功能描述:
登录界面有插入了背景图片
实现了登录界面GUI,可以进行 账号注册,和账号登录,对注册的账号用文件进行存储
*/
package com.xuan.main;
//登录界面
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException; public class denglu extends JFrame {
//设置一个含有背景图片的面板
private MyPanel panel;
private JLabel lab_zhanghao = new JLabel("账号:");
private JTextField jta_text = new JTextField();
Font lab = new Font("楷体",1,30);
private JLabel lat_password = new JLabel("密码:");
Font lat = new Font("楷体",1,30);
private JPasswordField jtb_text = new JPasswordField();
private JButton btn_register = new JButton("注册");
private JButton btn_land = new JButton("登陆");
Font btn = new Font("黑体",2,30);
public static int pd = 0;
public static String ak1, ak2;
private Container contentPane = this.getContentPane(); public denglu () {
this.setSize(400,267);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setTitle("登陆");
this.setResizable(false);
btn_register.addActionListener(new ActionListener() {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e) {
pd = 1;
ak1 = jta_text .getText();
ak2 = jtb_text .getText();
String fileName = "users.dat";
try {
FileWriter writer = new FileWriter(fileName,true);
BufferedWriter outWriter=new BufferedWriter(writer);
outWriter.write("ID:"+ak1+"&&"+"Password:"+ak2);
outWriter.newLine();
outWriter.close();
writer.close();
} catch (IOException e1) {
e1.printStackTrace();
}
jta_text.setText("");
jtb_text.setText("");
JOptionPane.showMessageDialog(null,"注册成功! 您的用户名是:"+ak1+"密码是:"+ ak2);
}
});
btn_land.addActionListener(new ActionListener() {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e) { if(pd==1||pd==0) {
File fileName=new File("users.dat");
try{
FileReader inOne=new FileReader(fileName);
BufferedReader inTwo=new BufferedReader(inOne);
String s=null;
int judge=1;
while((s=inTwo.readLine())!=null)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("ID:");
stringBuilder.append(jta_text.getText());
stringBuilder.append("&&");
stringBuilder.append("Password:");
stringBuilder.append(jtb_text.getText());
String ak=stringBuilder.toString(); if(s.equals(ak)) {
JOptionPane.showMessageDialog(null, "登录成功!");
jta_text .setText("");
jtb_text .setText("");
judge=0; break;
}
}
inTwo.close();
inOne.close();
if(judge==1) {
JOptionPane.showMessageDialog(null,"登陆失败!检查账号密码是否正确或请注册后登录",null,JOptionPane.ERROR_MESSAGE, null);
jta_text .setText("");
jtb_text .setText("");
}
if(judge==0){
new JMFMediaPlayer("JMF媒体播放器"); //在此处new出新的窗口
dispose();
return;
}
}catch(IOException event){
JOptionPane.showMessageDialog(null,"系统错误"+event,null,JOptionPane.ERROR_MESSAGE, null);
}
}
} }); init(); panel = new MyPanel();
//将所有的组件添加到panel面板中
panel.add(lab_zhanghao);
panel.add(lat_password);
panel.add(jta_text);
panel.add(jtb_text);
panel.add(btn_register);
panel.add(btn_land);
panel.setLayout(null); getContentPane().add(panel);
}
private void init() {
lab_zhanghao.setSize(200,100);
lab_zhanghao. setLocation(50,20);
lab_zhanghao.setFont(lab);
lat_password.setSize(200,100);
lat_password.setLocation(50,80);
lat_password.setFont(lat);
jta_text.setSize(190,30);
jta_text.setLocation(160,55);
jtb_text.setSize(190,30);
jtb_text.setLocation(160,115);
btn_register.setSize(120, 40);
btn_register.setLocation(60, 180);
btn_land.setSize(120, 40);
btn_land.setLocation(230, 180);
btn_register.setFont(btn);
btn_land.setFont(btn);
} public static void main(String[] args)
throws ClassNotFoundException,
InstantiationException, IllegalAccessException,
UnsupportedLookAndFeelException {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
new denglu().setVisible(true);
}
} package com.xuan.main;
//登录界面背景
import java.awt.*;
import javax.swing.*; //自定义一个面板类
class MyPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
//绘制一张背景图片 2.jpg是图片的路径 自己设定为自己想要添加的图片
Image image = new ImageIcon("background.jpg").getImage();
g.drawImage(image, 0, 0, this);
}
}

Java登录界面的实现(注册、登录、背景图片)的更多相关文章

  1. 37.qt quick- 高仿微信实现局域网聊天V3版本(添加登录界面、UDP校验登录、皮肤更换、3D旋转)

    1.版本介绍(已上传至群里) 版本说明: 添加登录界面. UDP校验登录. 皮肤更换. 3D旋转(主界面和登录界面之间切换) . 效果图如下所示: 如果效果图加载失败,可以去哔哩哔哩 https:// ...

  2. Discuz! X2.5判断会员登录状态及外部调用注册登录框

    Discuz! X2.5判断会员登录状态及外部调用注册登录框 有关discuz论坛会员信息,收集的一些资料: 用dedecms+discuz做了个门户加论坛形式的网站,但是dedecms顶部目前只能q ...

  3. 一步一步学习IdentityServer4 (3)自定登录界面并实现业务登录操作

    IdentityServer4 相对 IdentityServer3 在界面上要简单一些,拷贝demo基本就能搞定,做样式修改就行了 之前的文章已经有登录Idr4服务端操作了,新建了一个自己的站点 L ...

  4. 使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)

    上文<使用 VS2017 和 js 进行桌面程序开发 - electron 之 Hello Word>介绍了如何使用 VS2017 开发 electron 桌面程序,今天来点有看头的,但是 ...

  5. 登录界面,body上有背景图,点击输入框时,弹出的手机键盘会把背景图顶变形,而且会把footer顶上去

    js: //防止背景图被手机键盘压缩变形 $(document).ready(function () { $('body').css({'height':$(window).height()}) }) ...

  6. Java带token验证的注册登录

    http://blog.csdn.net/huqingpeng321/article/details/52900550 http://blog.csdn.net/l18710006370/articl ...

  7. Ubuntu登录界面添加root用户登录选项

    1.普通用户登录系统并打开终端 配置root密码 $sudo passwd 切换至root用户 $su root 输入密码 修改以下配置文件 $nano /usr/share/lightdm/ligh ...

  8. Centos启动时停止在登录界面但不显示登录信息(一直在转圈)

    进入单用户模式  执行 iscsiadm -m node -o delete,然后reboot

  9. 找回误删除的UBUNTU16.04桌面壁纸图片,或把桌面背景图片另存。20170114

    今天遇到一个小问题,之前下载并设置为桌面壁纸的一张图片在整理文件的时候不小心删除了.由于想不起来当时从哪里找到的图,所以就想把当前桌面壁纸重新保存.经网上查询,未见正确的保存方法,故写在此处备忘. 1 ...

  10. Java图形界面开发—简易登录注册小程序

    登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库 ...

随机推荐

  1. [GX/GZOI2019]宝牌一大堆(DP)

    出这种麻将题有意思吗? 乍看很难实则很水,就是麻将式DP,想必大家很熟悉了吧.首先把“国士无双”和“七对子”两种牌型判掉,然后观察牌胡的形式,发现每多一张牌实际上就是把1个面子变成1个杠子,然后可以直 ...

  2. P4327 彼得潘框架

    题意翻译 “彼得·潘框架”是一种装饰文字,每一个字母都是由一个菱形框架.一个彼得·潘框架看起来像这样 (x是字母,#是框架): ..#.. .#.#. #.X.# .#.#. ..#.. 然而,只是一 ...

  3. Linux centos 下安装redis

    一.安装编译工具及库文件      yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 二.选择安装文件 ...

  4. ElasticSearch6 报错blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];

    原文连接:https://blog.csdn.net/u013042707/article/details/84110531 方案:curl -XPUT -H "Content-Type: ...

  5. HBase单机安装及Phoenix JDBC连接

    HBase是建立在Hadoop文件系统之上的分布式面向列的数据库,它是横向扩展的.它利用了Hadoop的文件系统(HDFS)提供的容错能力. HBase提供对数据的随机实时读/写访问,可以直接HBas ...

  6. EXAM-2018-7-27

    EXAM-2018-7-27 未完成 [ ] F A 要用ll,然后注意正方形的情况,细心一点 E 有点动态规划的感觉,状态的转移,不难,要注意不要漏掉状态 K 正解是DFS 然后用贪心数据弱的话能过 ...

  7. Nearby Bicycles

    With fast developments of information and communication technology, many cities today have establish ...

  8. django框架进阶-admin-长期维护

    ###############    django--admin的使用    ################ # django后台管理: # 第一步: # 在settings文件中修改语言和时区 L ...

  9. UFT安装

    1.下载解压双击setup.exe 2.点击安装 3.点击下一步 4.检测是否需要安装插件之后一路向下 5.安装之后图标 下载: 链接:https://pan.baidu.com/s/1sa0h037 ...

  10. Qt QString类及常用函数功能详解

    QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Un ...