- 1、用JAVA編寫一個登陸系統。
- 2、用JAVA語言編程實現一個用戶登錄窗口
- 3、java寫的用戶登陸實例,用eclipse開發的具體步奏和代碼
- 4、用java寫一個登陸界面代碼。
第一個java文件LogoingDemo.java
import java.util.Scanner;
public class LogoingDemo {
public static void main(String[] args) {
System.out.println(“請輸入用戶名”);
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
System.out.println(“請輸入密碼”);
String psw = sc.nextLine();
sc.close();
CheckDemo cd = new CheckDemo(name,psw);//用戶名和密碼傳入驗證類
boolean bo = cd.check();//調用方法進行驗證
if(bo){
System.out.println(“登錄成功”);
}else{
System.out.println(“登錄失敗:提示 用戶名 admin 密碼123”);
}
}
}
第二個java文件CheckDemo.java
public class CheckDemo {
public String name;
public String psw;
public CheckDemo(String name,String psw){//構造器
this.name = name;
this.psw = psw;
}
public boolean check() {
// 用戶名 密碼不能為空. 用戶名=admin 密碼 = 123
if (name != null psw != null name.equals(“admin”) psw.equals(“123”)) {
return true;
}
return false;
}
}
效果
請輸入用戶名
admin
請輸入密碼
123
登錄成功
————————————
請輸入用戶名
add
請輸入密碼
123
登錄失敗:提示 用戶名 admin 密碼123
方法一:
採用JOptionPane中的一個非常有用的靜態方法 showOptionPane();
源碼如下:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JOptionPane;
import javax.swing.BoxLayout;
import javax.swing.Box;
import javax.swing.BorderFactory;
public class Login1 {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
static void createAndShowGUI() {
JFrame mainFrame = new JFrame();
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setBounds(250,250,400,300);
mainFrame.setVisible(false);
usernameField = new JTextField(10);
passwordField = new JPasswordField(10);
Object[] options = {“登錄”,”取消”};
int i = JOptionPane.showOptionDialog(null,createLoginPanel(),”登錄信息”,JOptionPane.DEFAULT_OPTION,JOptionPane.PLAIN_MESSAGE,null,options,options[0]);
if(i==0) {
String username = usernameField.getText();
String password = passwordField.getText();
if(!username.equals(“”) !password.equals(“”)) {
mainFrame.getContentPane().add(new JLabel(“用戶名:”+username+” 密碼是:”+password,JLabel.CENTER));
mainFrame.show();
}
else {
JOptionPane.showMessageDialog(null,”用戶名和密碼不能為空”,”提示”,JOptionPane.WARNING_MESSAGE);
System.exit(1);
}
}
else System.exit(0);
}
static JPanel createLoginPanel() {
JPanel ret = new JPanel();
JPanel usernamePanel = new JPanel();
usernamePanel.add(new JLabel(“用戶名:”,JLabel.RIGHT));
usernamePanel.add(usernameField);
JPanel passwordPanel = new JPanel();
passwordPanel.add(new JLabel(“密 碼:”,JLabel.RIGHT));
passwordPanel.add(passwordField);
Box box = new Box(BoxLayout.Y_AXIS);
box.add(usernamePanel); box.add(passwordPanel);
ret.add(box);
ret.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(new Color(244,144,44)),”填寫登錄信息”));
return ret;
}
static JFrame mainFrame = null;
static JTextField usernameField = null;
static JPasswordField passwordField = null;
}
運行:
javac -deprecation Login1.java
java Login
(因為有一個過期的API,所以用了 -deprecation 命令)
方法二,使用了兩個JFrame類共同實現,第一次顯示第一個frame,當點了登錄後且操作合法時,第一個窗口就被釋放了 dispose();再顯示第二個窗口:
源碼如下:
import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;
public class Login2 {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
static void createAndShowGUI() {
//////////////////////////////////////////////////////////////
loginWindow = new JFrame(“登錄信息”);
loginWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
loginWindow.setBounds(350,350,250,200);
loginWindow.setResizable(false);
JPanel usernamePanel = new JPanel();
usernamePanel.add(new JLabel(“用戶名:”,JLabel.CENTER));
usernamePanel.add(usernameField);
JPanel passwordPanel = new JPanel();
passwordPanel.add(new JLabel(“密 碼:”,JLabel.CENTER));
passwordPanel.add(passwordField);
Box box = new Box(BoxLayout.Y_AXIS);
box.add(usernamePanel); box.add(passwordPanel);
JPanel infoPanel = new JPanel();
infoPanel.add(box);
infoPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(new Color(244,144,44)),”填寫登錄信息”));
JButton submitButton = new JButton(“登錄”);
JButton cancelButton = new JButton(“取消”);
submitButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String username = usernameField.getText();
String password = passwordField.getText();
if(!username.equals(“”) !password.equals(“”)) {
loginWindow.dispose();
mainFrame.getContentPane().add(new JLabel(“用戶名:”+username+” 密碼是:”+password,JLabel.CENTER));
mainFrame.setVisible(true);
}
else {
JOptionPane.showMessageDialog(null,”用戶名和密碼不能為空”,”提示”,JOptionPane.WARNING_MESSAGE);
System.exit(1);
}
}
});
cancelButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
JPanel buttonPanel = new JPanel();
buttonPanel.add(submitButton); buttonPanel.add(cancelButton);
loginWindow.getContentPane().add(infoPanel,BorderLayout.CENTER);
loginWindow.getContentPane().add(buttonPanel,BorderLayout.SOUTH);
loginWindow.getContentPane().add(new JPanel(),BorderLayout.EAST);
loginWindow.getContentPane().add(new JPanel(),BorderLayout.WEST);
loginWindow.setVisible(true);
/////////////////////////////////////////////////////////////////
mainFrame = new JFrame();
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setBounds(250,250,400,300);
mainFrame.setVisible(false);
}
static JFrame loginWindow,mainFrame;
static final JTextField usernameField = new JTextField(10);
static final JPasswordField passwordField = new JPasswordField(10);
}
運行:
javac -deprecation Login2.java
java Login2
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import javax.swing.*;public class Login extends JFrame{
JLabel user,passwd;
JTextField userput;
JPasswordField passput;
JButton denglu,tuichu;
public Login(){
super(“用戶登錄”);
Container c=getContentPane();
c.setLayout(null);
Font f=new Font(“宋體”,Font.PLAIN,12);
user=new JLabel(“賬號”);
passwd=new JLabel(“密碼”);
userput=new JTextField();
passput=new JPasswordField();
denglu=new JButton(“登錄”);
denglu.setFont(f);
denglu.addActionListener(new NewAction());
tuichu=new JButton(“退出”);
tuichu.setFont(f);
tuichu.addActionListener(new NewAction());
user.setBounds(50,50,60,20);
userput.setBounds(110,50,150,20);
passwd.setBounds(50,80,60,20);
passput.setBounds(110,80,150,20);
denglu.setBounds(50,160,60,30);
tuichu.setBounds(200,160,60,30);
c.add(user);
c.add(userput);
c.add(passwd);
c.add(passput);
c.add(denglu);
c.add(tuichu);
setSize(350, 300);
setVisible(true);
}
class NewAction implements ActionListener{
String url=”jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=CDM”;
String user=”sa”;
String passwd=”394513265″;
java.sql.Connection con;
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try{
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
con= DriverManager.getConnection(url,user,passwd);
}catch(Exception ep){
JOptionPane.showMessageDialog(null, “加載驅動失敗!”);
}
if(e.getSource()==denglu){
Find();
}
if(e.getSource()==tuichu){
dispose();
}
} public void Find(){
String lk=”select * from login”;
try{
Statement sql=con.createStatement();
ResultSet rs=sql.executeQuery(lk);
while(rs.next()){
if(rs.getString(1).equals(userput.getText()) rs.getString(2).equals(passput.getText()))
new MainClient();
else
JOptionPane.showMessageDialog(null, “用戶名或密碼錯誤”);
}
rs.close();
}catch(SQLException p){
JOptionPane.showMessageDialog(null, p.getMessage());
}
}
}
public static void main(String[] args) {
Login l=new Login();
l.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
步驟就是建個工程 然後建個class
概述
具體框架使用jframe,文本框組件:JTextField;密碼框組件:JPasswordField;標籤組件:JLabel;複選框組件:JCheckBox;單選框組件:JRadioButton;按鈕組件JButton。
登錄界面:
代碼實例
import javax.swing.*;
import java.awt.*; //導入必要的包
public class denglu extends JFrame{
JTextField jTextField ;//定義文本框組件
JPasswordField jPasswordField;//定義密碼框組件
JLabel jLabel1,jLabel2;
JPanel jp1,jp2,jp3;
JButton jb1,jb2; //創建按鈕
public denglu(){
jTextField = new JTextField(12);
jPasswordField = new JPasswordField(13);
jLabel1 = new JLabel(“用戶名”);
jLabel2 = new JLabel(“密碼”);
jb1 = new JButton(“確認”);
jb2 = new JButton(“取消”);
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
//設置布局
this.setLayout(new GridLayout(3,1));
jp1.add(jLabel1);
jp1.add(jTextField);//第一塊面板添加用戶名和文本框
jp2.add(jLabel2);
jp2.add(jPasswordField);//第二塊面板添加密碼和密碼輸入框
jp3.add(jb1);
jp3.add(jb2); //第三塊面板添加確認和取消
// jp3.setLayout(new FlowLayout()); //因為JPanel默認布局方式為FlowLayout,所以可以註銷這段代碼.
this.add(jp1);
this.add(jp2);
this.add(jp3); //將三塊面板添加到登陸框上面
//設置顯示
this.setSize(300, 200);
//this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setTitle(“登陸”);
}
public static void main(String[] args){
new denglu();
}
}
拓展內容
java swing包
Swing 是一個為Java設計的GUI工具包。
Swing是JAVA基礎類的一部分。
Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。
Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平台運行,這一點不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統默認的特有主題),然而不是真的使用原生平台提供的設備,而是僅僅在表面上模仿它們。這意味着你可以在任意平台上使用JAVA支持的任意麵板。輕量級組件的缺點則是執行速度較慢,優點就是可以在所有平台上採用統一的行為。
概念解析:
JFrame – java的GUI程序的基本思路是以JFrame為基礎,它是屏幕上window的對象,能夠最大化、最小化、關閉。
JPanel – Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,可以進行嵌套,功能是對窗體中具有相同邏輯功能的組件進行組合,是一種輕量級容器,可以加入到JFrame窗體中。。
JLabel – JLabel 對象可以顯示文本、圖像或同時顯示二者。可以通過設置垂直和水平對齊方式,指定標籤顯示區中標籤內容在何處對齊。默認情況下,標籤在其顯示區內垂直居中對齊。默認情況下,只顯示文本的標籤是開始邊對齊;而只顯示圖像的標籤則水平居中對齊。
JTextField –一個輕量級組件,它允許編輯單行文本。
JPasswordField – 允許我們輸入了一行字像輸入框,但隱藏星號(*) 或點創建密碼(密碼)
JButton – JButton 類的實例。用於創建按鈕類似實例中的 “Login”。
原創文章,作者:UZJXL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/127010.html