Java Swing中JDialog实现用户登陆UI示例

网友投稿 297 2023-03-17


Java Swing中JDialog实现用户登陆UI示例

本文实例讲述了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);

}

});http://

mbar.add(fileMenu);

fileMenu.add(connectItem);

fileMenu.add(exitItem);

//添加文本区域

textArea = new JTextArea();

add(new jscrollPane(textArea), BorderLayout.CENTER);

//设置窗体属性

setTitle("LoginDemoStart - jb51.net");

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

setyOFgrTAtVisible(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 - jb51.net");

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程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java学生信息管理系统MVC架构详解
下一篇:接口测试用例怎么维护(接口测试用例需要考虑哪些测试点)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~