swing登录注册界面设计
作者:lsh呵呵 发布时间:2023-11-24 17:27:21
标签:swing,登录,注册
本文实例为大家分享了swing登录注册界面展示的具体代码,供大家参考,具体内容如下
开发环境:Eclipse Neon.3 Release (4.6.3)
我用的为javaee版本的,为了便于设计界面,需要安装windowbuilder插件,可以直接在marketplace里搜索到。
说明:参考凯哥视频同步学习的
界面效果
登录界面
注册界面
关键技术
该项目用到了java swing外观插件
用到了图片(点击src右键文件夹取名res并复制图片login.jpg)
源码
com.lsh.view.LoginDialog
package com.lsh.view;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ImageIcon;
import javax.swing.border.TitledBorder;
import com.lsh.util.ImageScale;
@SuppressWarnings("serial")
public class LoginDialog extends JDialog {
private final JPanel contentPanel = new JPanel();
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;
private JTextField textField_3;
private JTextField textField_4;
private JTextField textField_5;
private static final int DIALOG_WIDTH=414;
private static final int DIALOG_HEIGHT=340;
private static final int DIALOG_HEIGHT_EXTEND=573;
/**
* Launch the application.
*/
public static void main(String[] args) {
try
{
org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
}
catch(Exception e)
{
//TODO exception
System.out.println("加载炫彩皮肤失败!");
}
try {
LoginDialog dialog = new LoginDialog();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public LoginDialog() {
setAlwaysOnTop(true);
setResizable(false);
setBounds(400, 100, DIALOG_WIDTH,DIALOG_HEIGHT);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
//设置居中
//setLocation(WindowXY.getXY(LoginDialog.this.getSize()));
JButton btnNewButton = new JButton("注 册");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(LoginDialog.this.getHeight()==DIALOG_HEIGHT_EXTEND){
LoginDialog.this.setSize(DIALOG_WIDTH,DIALOG_HEIGHT);
}
else{
LoginDialog.this.setSize(DIALOG_WIDTH,DIALOG_HEIGHT_EXTEND);
}
}
});
btnNewButton.setBounds(53, 224, 93, 23);
contentPanel.add(btnNewButton);
JButton btnNewButton_1 = new JButton("登 录");
btnNewButton_1.setBounds(190, 224, 93, 23);
contentPanel.add(btnNewButton_1);
textField = new JTextField();
textField.setBounds(133, 147, 150, 25);
contentPanel.add(textField);
textField.setColumns(10);
textField_1 = new JTextField();
textField_1.setBounds(133, 182, 150, 25);
contentPanel.add(textField_1);
textField_1.setColumns(10);
JLabel lblNewLabel = new JLabel("邮 箱");
lblNewLabel.setBounds(53, 151, 54, 15);
contentPanel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("密 码");
lblNewLabel_1.setBounds(53, 194, 54, 15);
contentPanel.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("New label");
lblNewLabel_2.setBounds(0, 0, 360, 136);
ImageIcon icon=new ImageIcon(LoginDialog.class.getResource("/res/login.jpg"));
icon=ImageScale.getImage(icon, lblNewLabel_2.getWidth(), lblNewLabel_2.getHeight());
lblNewLabel_2.setIcon((icon));
contentPanel.add(lblNewLabel_2);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "\u6CE8\u518C\u7528\u6237", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(12, 259, 336, 221);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblNewLabel_3 = new JLabel("邮 箱");
lblNewLabel_3.setBounds(41, 29, 55, 18);
panel.add(lblNewLabel_3);
JLabel lblNewLabel_4 = new JLabel("验证码");
lblNewLabel_4.setBounds(41, 85, 55, 18);
panel.add(lblNewLabel_4);
JLabel lblNewLabel_5 = new JLabel("密 码");
lblNewLabel_5.setBounds(41, 115, 55, 18);
panel.add(lblNewLabel_5);
JLabel label = new JLabel("确认密码");
label.setBounds(41, 145, 55, 18);
panel.add(label);
textField_2 = new JTextField();
textField_2.setBounds(123, 22, 150, 25);
panel.add(textField_2);
textField_2.setColumns(10);
textField_3 = new JTextField();
textField_3.setBounds(123, 80, 150, 25);
panel.add(textField_3);
textField_3.setColumns(10);
textField_4 = new JTextField();
textField_4.setBounds(123, 113, 150, 25);
panel.add(textField_4);
textField_4.setColumns(10);
textField_5 = new JTextField();
textField_5.setBounds(123, 145, 150, 25);
panel.add(textField_5);
textField_5.setColumns(10);
JButton btnNewButton_2 = new JButton("发送验证码");
btnNewButton_2.setBounds(123, 52, 83, 23);
panel.add(btnNewButton_2);
JButton btnNewButton_3 = new JButton("取 消");
btnNewButton_3.setBounds(51, 182, 83, 27);
panel.add(btnNewButton_3);
JButton btnNewButton_4 = new JButton("确 认");
btnNewButton_4.setBounds(190, 182, 83, 27);
panel.add(btnNewButton_4);
}
}
工具类 com.lsh.util.ImageScale
package com.lsh.util;
import java.awt.Image;
import javax.swing.ImageIcon;
public class ImageScale {
public static ImageIcon getImage(ImageIcon icon,int width,int height){
Image image=icon.getImage().getScaledInstance(width, height,Image.SCALE_REPLICATE);
icon.setImage(image);
return icon;
}
}
工具类 com.lsh.util.WindowXY
package com.lsh.util;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Toolkit;
public class WindowXY {
public static Point getXY(int w,int h){
Toolkit toolkit=Toolkit.getDefaultToolkit();
int width=toolkit.getScreenSize().width;
int height=toolkit.getScreenSize().height;
return new Point((width-w)/2,(height-h)/2);
}
public static Point getXY(Dimension dimension) {
return getXY(dimension.width, dimension.height);
}
}
来源:https://blog.csdn.net/nima1994/article/details/68486131


猜你喜欢
- 本文为个人理解,不保证完全正确。官方文档中将双冒号的用法分为4类,按照我的个人理解可以分成2类来使用。官方文档官方文档中将双冒号的用法分为了
- 一,授权认证客户端请求服务器时,需要通过授权认证许可,方能获取服务器资源,目前比较常见的认证方式有 Basic 、JWT、Cookie。Ht
- 1、悬浮窗的基本介绍悬浮窗,大家应该也不陌生,凌驾于应用之上的一个小弹窗,实现上很简单,就是添加一个系统级别的窗口,Android中通过Wi
- 面对android studio Run 一次项目要等好几分钟的痛点,不得不研究一下android studio 的单元测试。其实我的目的很
- //可以包括其他字符 public string uncode(string str) { string outStr = "&q
- java 在Jetty9中使用HttpSessionListener和FilterHttpSessionListener当Session创建
- 下面通过代码看下springboot 跨域配置类,代码如下所示:ackage org.fh.config;import java.io.IO
- 一、面向对象的描述面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的
- 本文实例为大家分享了Android实现毛玻璃效果弹出菜单动画的具体代码,供大家参考,具体内容如下仿ios上屏幕下方向上滑出来的一个模糊菜单,
- 如下所示://StreamRead来读取一个文件 using (StreamReader sr = new StreamRea
- 目录一、服务的概念二、Android的多线程编程2.1 线程的基本用法2.2 在子线程中更新UI更新方式一更新方式二2.3 解析异步消息处理
- 利用redis进行springSession的存储:存储:// 在session中保存用户信息 H
- flex 布局算法Flutter 弹性布局的基石 是 flex 和 flexible。理解了这两个 widget,后面的row,column
- 多线程细节问题sleep方法和wait方法的异同点?相同点:让线程处于冻结状态.不同点:sleep必须指定时间 wait可以指定时间也可以不
- 最近在做一个平板的应用,底部的BACK HOME 还有电池WIFI的那一条STATUS_BAR设置全屏后怎么也去不掉,查找资料后,发现一个比
- 摘要本文主要讲解mall通过整合SpringSecurity和JWT实现后台用户的登录和授权功能,同时改造Swagger-UI的配置使其可以
- 简单的页面分析在上一个文章简单的数据库连接测试,已经测试和数据库做简单的交互,也就是dao层的实现,接下来要说的却是action的简单实现,
- 本文调用android的媒体播放器实现一些音乐播放操作项目布局:<LinearLayout xmlns:android="h
- 1. 什么是局部类型?C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中
- 引言在学习Java过程中,排序sort是我们常用的功能;在Java里,数组有Arrays.sort()可以排序,集合则是Collection