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

Java圖形用戶(hù)界面設(shè)計(jì)(Swing)的介紹

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

前言

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

Swing 是一個(gè)為Java設(shè)計(jì)的GUI工具包。

Swing是JAVA基礎(chǔ)類(lèi)的一部分。

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

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

Hello World 程序

HelloWorldSwing.java 文件代碼如下:

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

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

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

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

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

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

$ javac HelloWorldSwing.java
$ java HelloWorldSwing

一個(gè)用戶(hù)登錄框?qū)嵗?/strong>

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 實(shí)例
    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)建面板,這個(gè)類(lèi)似于 HTML 的 div 標(biāo)簽
     * 我們可以創(chuàng)建多個(gè)面板并在 JFrame 中指定位置
     * 面板中我們可以添加文本字段,按鈕及其他組件。
     */
    JPanel panel = new JPanel();  
    // 添加面板
    frame.add(panel);
    /* 
     * 調(diào)用用戶(hù)定義的方法并添加組件到面板
     */
    placeComponents(panel);

    // 設(shè)置界面可見(jiàn)
    frame.setVisible(true);
  }

  private static void placeComponents(JPanel panel) {

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

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

    /* 
     * 創(chuàng)建文本域用于用戶(hù)輸入
     */
    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);

    /* 
     *這個(gè)類(lèi)似用于輸入的文本域
     * 但是輸入的信息會(huì)以點(diǎn)號(hào)代替,用于包含密碼的安全性
     */
    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í)行以下命令輸出結(jié)果:

$ javac SwingLoginExample.java
$ java SwingLoginExample

概念解析:

JFrame – java的GUI程序的基本思路是以JFrame為基礎(chǔ),它是屏幕上window的對(duì)象,能夠最大化、最小化、關(guān)閉。

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


好了,到這本文就告一段落了。這里說(shuō)的都是初級(jí)知識(shí),有此基礎(chǔ),設(shè)計(jì)復(fù)雜一點(diǎn)的圖形用戶(hù)界面也就不是難事了!

相關(guān)文章

  • 解決weblogic部署springboot項(xiàng)目步驟及可能會(huì)出現(xiàn)的問(wèn)題

    解決weblogic部署springboot項(xiàng)目步驟及可能會(huì)出現(xiàn)的問(wèn)題

    這篇文章主要介紹了解決weblogic部署springboot項(xiàng)目步驟及可能會(huì)出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 解析Java實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能的方法詳解

    解析Java實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能的方法詳解

    本篇文章是對(duì)Java實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • SpringBoot實(shí)現(xiàn)本地文件存儲(chǔ)及預(yù)覽過(guò)程

    SpringBoot實(shí)現(xiàn)本地文件存儲(chǔ)及預(yù)覽過(guò)程

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)本地文件存儲(chǔ)及預(yù)覽過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • IDEA下Maven的pom文件導(dǎo)入依賴(lài)出現(xiàn)Auto build completed with errors的問(wèn)題

    IDEA下Maven的pom文件導(dǎo)入依賴(lài)出現(xiàn)Auto build completed with errors的問(wèn)題

    這篇文章主要介紹了IDEA下Maven的pom文件導(dǎo)入依賴(lài)出現(xiàn)Auto build completed with errors,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • java中使用session監(jiān)聽(tīng)實(shí)現(xiàn)同帳號(hào)登錄限制、登錄人數(shù)限制

    java中使用session監(jiān)聽(tīng)實(shí)現(xiàn)同帳號(hào)登錄限制、登錄人數(shù)限制

    本文主要介紹了java中使用session監(jiān)聽(tīng)實(shí)現(xiàn)同帳號(hào)登錄限制、登錄人數(shù)限制,通過(guò)session來(lái)監(jiān)聽(tīng)在線(xiàn)人數(shù)和登陸限制,有需要的童鞋可以了解一下。
    2016-10-10
  • Java獲取泛型實(shí)際類(lèi)型的方法詳解

    Java獲取泛型實(shí)際類(lèi)型的方法詳解

    這篇文章主要介紹了Java獲取泛型實(shí)際類(lèi)型的方法詳解,泛型,即“參數(shù)化類(lèi)型”,一提到參數(shù),最熟悉的就是定義方法時(shí)有形參列表,普通方法的形參列表中,每個(gè)形參的數(shù)據(jù)類(lèi)型是確定的,而變量是一個(gè)參數(shù),需要的朋友可以參考下
    2023-11-11
  • 詳解SpringBoot集成消息隊(duì)列的案例應(yīng)用

    詳解SpringBoot集成消息隊(duì)列的案例應(yīng)用

    Message?Queue又名消息隊(duì)列,是一種異步通訊的中間件??梢岳斫鉃猷]局,發(fā)送者將消息投遞到郵局,然后郵局幫我們發(fā)送給具體的接收者,具體發(fā)送過(guò)程和時(shí)間與我們無(wú)關(guān)。?消息隊(duì)列是分布式系統(tǒng)中重要的組件,消息隊(duì)列主要解決了應(yīng)用耦合、異步處理、流量削鋒等問(wèn)題
    2022-04-04
  • Java Map.Entry的使用方法解析

    Java Map.Entry的使用方法解析

    這篇文章主要介紹了Java Map.Entry的使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Java連接各種數(shù)據(jù)庫(kù)的方法

    Java連接各種數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了Java連接各種數(shù)據(jù)庫(kù)的方法,實(shí)例分析了java連接MySQL、SQL Server、Sysbase、Oracle、PostgreSQL及DB2等數(shù)據(jù)庫(kù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • java高效讀大文件(csv,text)的幾種處理方式

    java高效讀大文件(csv,text)的幾種處理方式

    這篇文章主要給大家介紹了關(guān)于java高效讀大文件(csv,text)的幾種處理方式,Java中處理大文件時(shí),通常需要采取一些特定的策略來(lái)避免內(nèi)存溢出或性能問(wèn)題,文中通過(guò)代碼及圖片介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07

最新評(píng)論

灌阳县| 黔西县| 和平县| 乡宁县| 建阳市| 安阳市| 苍山县| 锡林郭勒盟| 重庆市| 包头市| 武夷山市| 睢宁县| 岐山县| 黄平县| 大冶市| 上虞市| 黄陵县| 青岛市| 皋兰县| 洞口县| 巴林右旗| 奉节县| 尚义县| 南召县| 建水县| 连云港市| 宣威市| 元江| 鄂托克旗| 辽中县| 鹿邑县| 塔河县| 长兴县| 日土县| 宣汉县| 大港区| 绥芬河市| 阿瓦提县| 珲春市| 阳谷县| 彝良县|