时间:2021-05-19
本文实例讲述了Java Swing中JDialog实现用户登陆UI。分享给大家供大家参考,具体如下:
JDialog是一种对话框组件,它常常与JOptionPane配合使用。JOptionPane提供对话框内部的消息、按钮等内容,JDialog提供对话框窗体,提供模态/非模态等属性。JDialog与JFrame在外观上的区别在于,它没有最大化/最小化按钮。如下图所示:
JDialog窗体
点击File-》connect之后弹出登陆窗口:
JFrame窗体
在下面的demo中,演示了JDialog构造登录窗体,以及从窗体中获得数据的方法。
LoginDemoStart.java
package awtDemo;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;/* * @功能:使用JDialog构造登陆对话框,并获取登陆用户信息 * @版本:20150804 * @结构:LoginDemoStart[主类,提供初始UI],PasswordChooser[提供登陆UI并获取用户信息],User[保存用户信息] */@SuppressWarnings("serial")class LoginDemoStart extends JFrame{ /* * @功能:提供初始UI,并调用PasswordChooser登陆界面 * @版本:20150804 */ private JTextArea textArea; private PasswordChooser passwordChooser ; public LoginDemoStart(){ //构造菜单栏 JMenuBar mbar = new JMenuBar(); setJMenuBar(mbar); JMenu fileMenu = new JMenu("File"); JMenuItem connectItem = new JMenuItem("connect"); connectItem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub //if 1st time,construct a dialog passwordChooser = new PasswordChooser(LoginDemoStart.this); passwordChooser.setVisible(true); if(passwordChooser.isLogedIn()) { User u = passwordChooser.getUser(); textArea.append("Username = " + u.getName() + ", Password = " + new String(u.getPassword()) + "\n"); } } }); JMenuItem exitItem = new JMenuItem("exit"); exitItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.exit(0); } }); mbar.add(fileMenu); fileMenu.add(connectItem); fileMenu.add(exitItem); //添加文本区域 textArea = new JTextArea(); add(new JScrollPane(textArea), BorderLayout.CENTER); //设置窗体属性 setTitle("LoginDemoStart - "); setSize(300,200); setLocationRelativeTo(null); } public static void main(String[] args) { // TODO Auto-generated method stub LoginDemoStart loginDemoStart = new LoginDemoStart(); loginDemoStart.setVisible(true); }}PasswordChooser.java
package awtDemo;import java.awt.*;import java.awt.event.*;import javax.swing.*;/* * @功能:提供登陆UI并获取用户信息 * @版本:20150804 */@SuppressWarnings("serial")class PasswordChooser extends JDialog{ private JTextField username ; private JPasswordField password ; private JButton okButton ; private JButton cancelButton ; private boolean isLogedIn = false; public PasswordChooser(Frame parent){ super(parent, true); //本UI包含2个panel JPanel inputPanel = new JPanel(); JPanel buttonPanel = new JPanel(); //构造inputPanel inputPanel.setLayout(new GridLayout(2,2)); inputPanel.add(new JLabel("Useername:")); username = new JTextField(); username.setColumns(10); password = new JPasswordField(); password.setColumns(10); inputPanel.add(username); inputPanel.add(new JLabel("Password:")); inputPanel.add(password); inputPanel.setBorder(BorderFactory.createEmptyBorder(10, 5, 10, 5)); //构造buttonPanel okButton = new JButton("OK"); okButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub isLogedIn = true; setVisible(false); } }); cancelButton = new JButton("Cancel"); cancelButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub setVisible(false); } }); buttonPanel.add(okButton); buttonPanel.add(cancelButton); buttonPanel.setBorder(BorderFactory.createEmptyBorder(10, 5, 10, 5)); //构造主框架 setLayout(new BorderLayout()); getContentPane().add(inputPanel, BorderLayout.NORTH); getContentPane().add(buttonPanel, BorderLayout.SOUTH); //设置窗体属性 setTitle("PasswordChooser - "); setLocationRelativeTo(inputPanel); //setPreferredSize(new Dimension(300, 200)); pack(); //System.out.println(getPreferredSize()); } public void setUser(User u){ username.setText(u.getName()); } public User getUser(){ return new User(username.getText(), password.getPassword()); } public boolean isLogedIn(){ return isLogedIn; } public static void main(String[] args) { // TODO Auto-generated method stub }}User.java
package awtDemo;/* * @功能:保存用户信息 * @版本:20150804 */class User{ private String name; private char[] password; public User(String aName, char[] aPassword){ name = aName; password = aPassword; } public String getName(){ return name; } public char[] getPassword(){ return password; } public void setName(String aName){ name = aName; } public void setPassword(char[] aPassword){ password = aPassword; }}更多关于java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java字符与字符串操作技巧总结》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
JDialog窗体是Swing组件中的对话框,它继承了AWT组件中java.awt.Dialog类。JDialog窗体的功能是从一个窗体中弹出另一个窗体,就像是
1.功能简介此程序模拟用户登陆商城后购买商品操作。可实现用户登陆、商品购买、历史消费记查询、余额和消费信息更新等功能。首次登陆输入初始账户资金,后续登陆则从文件
本文主要向大家分享了Python编程中通过Django模块实现用户注册以及邮箱验证功能的简单介绍及代码实现,具体如下。用户注册:类似于用户登陆,同样在users
php实现用户登陆简单实例前言:最近要完成的最后一个部分,就是对用户提交的数据进行管理,至于管理,那肯定就是管理员的事了,那一定涉及登陆,验证账号权限,账号是否
代码主要功能:利用Python实现简单的登陆验证,代码主要有两个部分组成:第一部分:登陆页面,作用是实现用户名和密码的输入利用两个输入函数input()来实现对