成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

JavaSwing中JDialog實現(xiàn)用戶登陸UI示例

本文實例講述了Java Swing中JDialog實現(xiàn)用戶登陸UI。分享給大家供大家參考,具體如下:

成都創(chuàng)新互聯(lián)公司致力于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計,集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇成都創(chuàng)新互聯(lián)公司,就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

JDialog是一種對話框組件,它常常與JOptionPane配合使用。JOptionPane提供對話框內(nèi)部的消息、按鈕等內(nèi)容,JDialog提供對話框窗體,提供模態(tài)/非模態(tài)等屬性。JDialog與JFrame在外觀上的區(qū)別在于,它沒有最大化/最小化按鈕。如下圖所示:

Java Swing中JDialog實現(xiàn)用戶登陸UI示例

JDialog窗體

 點擊File-》connect之后彈出登陸窗口:

Java Swing中JDialog實現(xiàn)用戶登陸UI示例

JFrame窗體

在下面的demo中,演示了JDialog構(gòu)造登錄窗體,以及從窗體中獲得數(shù)據(jù)的方法。

LoginDemoStart.java

package awtDemo;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/*
 * @功能:使用JDialog構(gòu)造登陸對話框,并獲取登陸用戶信息
 * @版本:20150804
 * @結(jié)構(gòu):LoginDemoStart[主類,提供初始UI],PasswordChooser[提供登陸UI并獲取用戶信息],User[保存用戶信息]
 */
@SuppressWarnings("serial")
class LoginDemoStart extends JFrame{
  /*
   * @功能:提供初始UI,并調(diào)用PasswordChooser登陸界面
   * @版本:20150804
   */
  private JTextArea textArea;
  private PasswordChooser passwordChooser ;
  public LoginDemoStart(){
    //構(gòu)造菜單欄
    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);
    //添加文本區(qū)域
    textArea = new JTextArea();
    add(new JScrollPane(textArea), BorderLayout.CENTER);
    //設(shè)置窗體屬性
    setTitle("LoginDemoStart - www.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();
    //構(gòu)造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));
    //構(gòu)造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));
    //構(gòu)造主框架
    setLayout(new BorderLayout());
    getContentPane().add(inputPanel, BorderLayout.NORTH);
    getContentPane().add(buttonPanel, BorderLayout.SOUTH);
    //設(shè)置窗體屬性
    setTitle("PasswordChooser - www.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;
  }
}

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設(shè)計有所幫助。

當(dāng)前題目:JavaSwing中JDialog實現(xiàn)用戶登陸UI示例
分享鏈接:http://jinyejixie.com/article42/gdjchc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站營銷、Google響應(yīng)式網(wǎng)站、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營