java swing 制作一個登陸界面,親測有效


一、介紹

Swing 是一個為Java設計的GUI工具包。

Swing是JAVA基礎類的一部分。

Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。

Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平台運行,這一點不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統默認的特有主題),然而不是真的使用原生平台提供的設備,而是僅僅在表面上模仿它們。這意味着你可以在任意平台上使用JAVA支持的任意面板。輕量級組件的缺點則是執行速度較慢,優點就是可以在所有平台上采用統一的行為。

二、效果

三、代碼

package com.test.jframe;

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;

public class JFrameTest {

    private JFrame frame;
    private JPasswordField passwordField;
    private boolean isLogin = false;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    JFrameTest window = new JFrameTest();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public JFrameTest() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {

        String userName = "111";
        String userPwd = "111";

        frame = new JFrame();
        frame.setBounds(100, 100, 667, 453);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        Label label = new Label("賬號:");
        label.setAlignment(Label.CENTER);
        label.setBounds(116, 49, 50, 23);
        frame.getContentPane().add(label);

        Label label_1 = new Label("密碼:");
        label_1.setAlignment(Label.CENTER);
        label_1.setBounds(116, 85, 50, 23);
        frame.getContentPane().add(label_1);

        Label label_2 = new Label("用戶狀態:");
        label_2.setBounds(433, 49, 60, 23);
        frame.getContentPane().add(label_2);

        Label label_3 = new Label("未登錄");
        label_3.setForeground(new Color(255, 0, 0));
        label_3.setBounds(499, 49, 40, 23);
        frame.getContentPane().add(label_3);

        JFormattedTextField formattedTextField = new JFormattedTextField();
        formattedTextField.setBounds(172, 49, 166, 23);
        frame.getContentPane().add(formattedTextField);

        passwordField = new JPasswordField();
        passwordField.setBounds(172, 85, 166, 23);
        frame.getContentPane().add(passwordField);

        JButton button = new JButton("login");
        button.setBackground(new Color(255, 255, 255));
        button.setBounds(126, 121, 212, 23);
        frame.getContentPane().add(button);
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String getUserName = formattedTextField.getText();
                String getUserPwd = passwordField.getText();
                if (userName.equals(getUserName) && userPwd.equals(getUserPwd)) {
                    isLogin = true;
                } else {
                    isLogin = false;
                }
                if (isLogin) {
                    JOptionPane.showMessageDialog(null, "登錄成功!", "消息", JOptionPane.PLAIN_MESSAGE);
                    label_3.setText("已登錄");
                    label_3.setForeground(Color.BLUE);
                } else {
                    JOptionPane.showMessageDialog(null, "登錄失敗!", "消息", JOptionPane.WARNING_MESSAGE);
                    label_3.setText("未登錄");
                    label_3.setForeground(Color.RED);
                }
            }
        });
    }
}

 四、解決中文亂碼問題

Run as > Run Condiguration,在Arguments中增加下面這句話:

-Dfile.encoding=gbk

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM