欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java圖形用戶界面設計(Swing)的介紹

 更新時間:2016年07月20日 10:27:19   投稿:daisy  
看到多數(shù)人提到 Java 就以為是網(wǎng)絡開發(fā),其實不是這樣的,Java 也可以開發(fā)應用程序,而且可以開發(fā)出漂亮的圖形用戶界面的應用程序,因此,我寫下這篇文章,希望能帶你進入 Java 圖形用戶界面設計之門。

前言

Swing是一個用于開發(fā)Java應用程序用戶界面的開發(fā)工具包。它以抽象窗口工具包(AWT)為基礎使跨平臺應用程序可以使用任何可插拔的外觀風格。Swing開發(fā)人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創(chuàng)建優(yōu)雅的用戶界面。

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

Swing是JAVA基礎類的一部分。

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

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

Hello World 程序

HelloWorldSwing.java 文件代碼如下:

import javax.swing.*;
public class HelloWorldSwing {
  /**{
   * 創(chuàng)建并顯示GUI。出于線程安全的考慮,
   * 這個方法在事件調用線程中調用。
   */
  private static void createAndShowGUI() {
    // 確保一個漂亮的外觀風格
    JFrame.setDefaultLookAndFeelDecorated(true);

    // 創(chuàng)建及設置窗口
    JFrame frame = new JFrame("HelloWorldSwing");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // 添加 "Hello World" 標簽
    JLabel label = new JLabel("Hello World");
    frame.getContentPane().add(label);

    // 顯示窗口
    frame.pack();
    frame.setVisible(true);
  }

  public static void main(String[] args) {
    // 顯示應用 GUI
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        createAndShowGUI();
      }
    });
  }
}

執(zhí)行以下命令輸出結果:

$ javac HelloWorldSwing.java
$ java HelloWorldSwing

一個用戶登錄框實例

SwingLoginExample.java 文件代碼如下:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField; 
public class SwingLoginExample {
  
  public static void main(String[] args) {  
    // 創(chuàng)建 JFrame 實例
    JFrame frame = new JFrame("Login Example");
    // Setting the width and height of frame
    frame.setSize(350, 200);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    /* 創(chuàng)建面板,這個類似于 HTML 的 div 標簽
     * 我們可以創(chuàng)建多個面板并在 JFrame 中指定位置
     * 面板中我們可以添加文本字段,按鈕及其他組件。
     */
    JPanel panel = new JPanel();  
    // 添加面板
    frame.add(panel);
    /* 
     * 調用用戶定義的方法并添加組件到面板
     */
    placeComponents(panel);

    // 設置界面可見
    frame.setVisible(true);
  }

  private static void placeComponents(JPanel panel) {

    /* 布局部分我們這邊不多做介紹
     * 這邊設置布局為 null
     */
    panel.setLayout(null);

    // 創(chuàng)建 JLabel
    JLabel userLabel = new JLabel("User:");
    /* 這個方法定義了組件的位置。
     * setBounds(x, y, width, height)
     * x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。
     */
    userLabel.setBounds(10,20,80,25);
    panel.add(userLabel);

    /* 
     * 創(chuàng)建文本域用于用戶輸入
     */
    JTextField userText = new JTextField(20);
    userText.setBounds(100,20,165,25);
    panel.add(userText);

    // 輸入密碼的文本域
    JLabel passwordLabel = new JLabel("Password:");
    passwordLabel.setBounds(10,50,80,25);
    panel.add(passwordLabel);

    /* 
     *這個類似用于輸入的文本域
     * 但是輸入的信息會以點號代替,用于包含密碼的安全性
     */
    JPasswordField passwordText = new JPasswordField(20);
    passwordText.setBounds(100,50,165,25);
    panel.add(passwordText);

    // 創(chuàng)建登錄按鈕
    JButton loginButton = new JButton("login");
    loginButton.setBounds(10, 80, 80, 25);
    panel.add(loginButton);
  }

}

執(zhí)行以下命令輸出結果:

$ javac SwingLoginExample.java
$ java SwingLoginExample

概念解析:

JFrame – java的GUI程序的基本思路是以JFrame為基礎,它是屏幕上window的對象,能夠最大化、最小化、關閉。

JPanel – Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,可以進行嵌套,功能是對窗體中具有相同邏輯功能的組件進行組合,是一種輕量級容器,可以加入到JFrame窗體中。。
JLabel – JLabel 對象可以顯示文本、圖像或同時顯示二者??梢酝ㄟ^設置垂直和水平對齊方式,指定標簽顯示區(qū)中標簽內容在何處對齊。默認情況下,標簽在其顯示區(qū)內垂直居中對齊。默認情況下,只顯示文本的標簽是開始邊對齊;而只顯示圖像的標簽則水平居中對齊。
JTextField –一個輕量級組件,它允許編輯單行文本。
JPasswordField – 允許我們輸入了一行字像輸入框,但隱藏星號(*) 或點創(chuàng)建密碼(密碼)
JButton – JButton 類的實例。用于創(chuàng)建按鈕類似實例中的 "Login"。


好了,到這本文就告一段落了。這里說的都是初級知識,有此基礎,設計復雜一點的圖形用戶界面也就不是難事了!

相關文章

  • MyBatis映射關系詳解

    MyBatis映射關系詳解

    本文重點介紹MyBatis映射關系重點是映射關系一對一,一對一映射方式結合應用實例給大家詳細講解,對MyBatis映射關系相關知識感興趣的朋友一起看看吧
    2022-11-11
  • SpringBoot構建Restful service完成Get和Post請求

    SpringBoot構建Restful service完成Get和Post請求

    這篇文章主要介紹了SpringBoot構建Restful service完成Get和Post請求的示例代碼,感興趣的朋友一起看看吧
    2017-08-08
  • 基于Cookie與Session的Servlet?API會話管理操作

    基于Cookie與Session的Servlet?API會話管理操作

    這篇文章主要為大家介紹了基于Cookie與Session的Servlet?API會話管理操作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • java中的session對象及其常用方法小結

    java中的session對象及其常用方法小結

    這篇文章主要介紹了java中的session對象及其常用方法小結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Jmeter實現(xiàn)Base64編碼的兩種方式

    Jmeter實現(xiàn)Base64編碼的兩種方式

    這篇文章主要介紹了Jmeter實現(xiàn)Base64編碼,大家都知道Jmeter實現(xiàn)Base64編碼有兩種方式,本文通過圖文并茂的形式把每種方法給大家介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • Java Hibernate中的多種查詢方式及示例

    Java Hibernate中的多種查詢方式及示例

    Hibernate提供了多種查詢方式,包括HQL查詢、SQL查詢、QBC查詢和Criteria查詢等。HQL查詢是基于面向對象的查詢語言,可以方便地進行對象導航和多表查詢;SQL查詢允許用戶直接使用SQL語句進行查詢;QBC查詢是基于Criteria的查詢,具有類型安全和可重用性的優(yōu)勢
    2023-04-04
  • maven多個plugin相同phase的執(zhí)行順序

    maven多個plugin相同phase的執(zhí)行順序

    這篇文章主要介紹了maven多個plugin相同phase的執(zhí)行順序,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • java 流與 byte[] 的互轉操作

    java 流與 byte[] 的互轉操作

    這篇文章主要介紹了java 流與 byte[] 的互轉操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • java的各種集合為什么不安全(List、Set、Map)以及代替方案

    java的各種集合為什么不安全(List、Set、Map)以及代替方案

    這篇文章主要介紹了java的各種集合為什么不安全(List、Set、Map)以及代替方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • Java中關于字典樹的算法實現(xiàn)

    Java中關于字典樹的算法實現(xiàn)

    字典樹,又稱單詞查找樹,Trie樹,是一種樹形結構,哈希表的一個變種。用于統(tǒng)計,排序和保存大量的字符串,本文針對字典樹給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值
    2021-09-09

最新評論