最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年11月14日 12:25:20   作者:pzy4447  
這篇文章主要介紹了Java Swing中JDialog實(shí)現(xiàn)用戶登陸UI功能,結(jié)合完整實(shí)例形式分析了Swing使用JDialog實(shí)現(xiàn)用戶登陸UI界面窗口功能的步驟與相關(guān)操作技巧,需要的朋友可以參考下

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

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

JDialog窗體

 點(diǎn)擊File-》connect之后彈出登陸窗口:

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)造登陸對(duì)話框,并獲取登陸用戶信息
 * @版本:20150804
 * @結(jié)構(gòu):LoginDemoStart[主類(lèi),提供初始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 - m.fzitv.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個(gè)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 - m.fzitv.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é)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

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

相關(guān)文章

  • Spring 異常處理的各種姿勢(shì)總結(jié)

    Spring 異常處理的各種姿勢(shì)總結(jié)

    這篇文章主要介紹了Spring 異常處理,總結(jié)分析了Spring 異常處理的各種常見(jiàn)操作技巧與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • java多線程事務(wù)加鎖引發(fā)bug用戶重復(fù)注冊(cè)解決分析

    java多線程事務(wù)加鎖引發(fā)bug用戶重復(fù)注冊(cè)解決分析

    這篇文章主要為大家介紹了java多線程事務(wù)加鎖引發(fā)bug用戶重復(fù)注冊(cè)解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 新手了解java 多線程基礎(chǔ)知識(shí)

    新手了解java 多線程基礎(chǔ)知識(shí)

    這篇文章主要介紹了java 基礎(chǔ)教程之多線程詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,線程的基本屬性、如何創(chuàng)建線程、線程的狀態(tài)切換以及線程通信,需要的朋友可以參考下
    2021-07-07
  • jpa多條件查詢重寫(xiě)Specification的toPredicate方法

    jpa多條件查詢重寫(xiě)Specification的toPredicate方法

    這篇文章主要介紹了多條件查詢重寫(xiě)Specification的toPredicate方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot 中常用注解及各種注解作用

    SpringBoot 中常用注解及各種注解作用

    本篇文章將介紹幾種SpringBoot 中常用注解及各個(gè)注解的作用,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-03-03
  • 最新評(píng)論

    西乌珠穆沁旗| 同江市| 晋宁县| 璧山县| 岗巴县| 呼和浩特市| 巴中市| 楚雄市| 临高县| 定安县| 南安市| 福州市| 涟源市| 濮阳县| 安达市| 河东区| 仁布县| 栖霞市| 斗六市| 克拉玛依市| 邳州市| 台江县| 田东县| 克什克腾旗| 印江| 宜君县| 青川县| 都昌县| 鄂伦春自治旗| 兴隆县| 纳雍县| 昔阳县| 仲巴县| 大埔区| 上虞市| 江津市| 肇州县| 垦利县| 娄烦县| 许昌市| 石门县|