[Java開發實例] 畫板開發第一站:圖形界面開發基礎

圖形用戶界面(Graphics User Interface,GUI)
個人認爲,所謂圖形界面開發,不過是像小孩子玩積木一樣,把一個個組件添加上去,組成一個作品。

首先,我們來了解一下這些組件,也就是搭積木的原材料。
    Java提供的圖形界面類有兩大類:
    1.AWT組件(基礎)
        AWT組件是jdk1.0的時候推出的圖形界面類,這套組件是存儲在java.awt包下的類。
        (採用了C和C++的語言實現的,並且在實現的時候還調用了操作系統底層的繪圖函數實現的組件,無法實現跨平臺)
    2.SWING組件(擴展)
        SWING組件是jdk1.4的時候推出的圖形界面類,這套組件是存儲在javax.swing包下的類。
        SWING是基於AWT組件的基礎上,採用純Java語言構建的一套新的跨平臺組件。
        
        不管使用的是AWT組件還是SWING組件開發的應用程序是可以跨平臺的。

常用的組件類和輔助類
    1.容器組件類:組件上能添加其他的組件,那該組件就是容器組件類。
        JFrame    窗體容器組件類,頂級容器:要實現一個圖形界面,首先必須要先有一個頂級容器做爲載體。
        JFrame類的常用方法
              JFrame frame = new JFrame();
              frame.setTitle("圖形界面");// 設置窗體的標題
              frame.setSize(300, 350);// 設置窗體的大小
              frame.setLocation(0, 0);//設置窗體顯示的位置
              frame.setLocationRelativeTo(null);// 設置窗體相對於另一個組件的中央位置,如果參數爲null,則在屏幕的中央,且一定要在設置大小後
              frame.setDefaultCloseOperation(3);// 設置窗體的關閉操作;3表示關閉窗體退出程序;2表示如果只有一個窗體則關閉窗體退出程序,如果多個窗體則關閉當前窗體,其他的不退出;1表示關閉窗體但是程序不結束;0表示點擊關閉按鈕無效。
              frame.setLayout(fl);//設置窗體的佈局方式爲fl流式佈局
              frame.add();//添加組件
              frame.setResizable(false);// 禁止調整窗體的大小
              frame.setVisible(true);// 設置窗體爲可見


    2.元素組件類:用來顯示文字、圖片或接收用戶輸入信息的就是元素組件類。
        JLabel            標籤元素組件類        顯示文字或圖片,也可以文字圖片一起顯示。
              JLabel labelName = new JLabel("標籤");
        JTextField        文本輸入框元素組件類    接收用戶輸入的信息,然後將輸入的信息直接顯示出來。
        JPasswordField    密碼輸入框元素組件類    接收用戶輸入的信息,然後將輸入的每一個字符用對應的一個符號代替顯示。
        JButton            按鈕元素組件類        顯示文字或圖片,也可以文字圖片一起顯示,有按下和釋放的效果。
        使用方法: frame.add(元素組件對象);//(要在窗體可見之前完成)。
        設置大小:setSize()方法只有頂級容器組件有效;
        setPreferredSize()方法,除頂級容器組件外,其他組件設置大小的方法。


    3.輔助類:幫助組件完成某一個特定功能的類。
        javax.swing.ImageIcon    圖標類    加載磁盤上的圖片文件到內存中。
              // 實例化ImageIcon對象,加載磁盤上的圖片到內存中
              ImageIcon icon = new ImageIcon("C:\\Users\\any\\Desktop\\53.png");
        java.awt.FlowLayout        流式佈局類        流式佈局的佈局效果類似於Word文檔,但是不能像Word一樣回車換行,只能是自動換行。
                                佈局類是針對容器組件設置的;在java.awt和javax.swing包下,所有以Layout結尾的都是佈局類。
        java.awt.Dimension        封裝組件寬度和高度的類


上述的組件類是屬於SWING組件中的類,如果要使用記得加上它們的包名,
        例如:javax.swing.JFrame,
            也可以使用import javax.swing.JFrame引入類,然後直接使用類名。
    如果想要使用AWT組件,只需要將類名的第一字母J去掉就可以,例如:java.awt.Frame。      


 
登錄界面示例:
 

package login;

import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;

import java.awt.FlowLayout;
import java.awt.Dimension;

public class Login {
    public static void main(String[] args) {
         Login mylogin=new Login();
         mylogin.InitUI();
    }
    public void InitUI(){
        //組件類
        JFrame frame=new JFrame();
        frame.setTitle("Login");
        frame.setSize(300,330);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(3);
        
        FlowLayout fl=new FlowLayout(FlowLayout.CENTER);
        frame.setLayout(fl);    
        
        ImageIcon icon=new ImageIcon("C:\\Users\\lenovo\\Desktop\\179b2b02a0efd6cd.jpg");
        JLabel lb=new JLabel(icon);
        lb.setPreferredSize(new Dimension(300,150));
        frame.add(lb);
        
        JLabel labelName=new JLabel("賬號:");
        frame.add(labelName);
        JTextField textName = new JTextField();
        //文本框大小
        textName.setPreferredSize(new Dimension(210,30));
        frame.add(textName);
        
        JLabel labelName2=new JLabel("密碼:");
        frame.add(labelName2);

        JPasswordField textName2 = new JPasswordField();
        //文本框大小
        textName2.setPreferredSize(new Dimension(210,30));
        frame.add(textName2);
        
        JButton bt =new JButton("登錄");
        bt.setPreferredSize(new Dimension(70,50));
        frame.add(bt);
        
        frame.setVisible(true);
    }
}


圖形開發效果圖

 

QQ:375471598

微信:Q159837547

歡迎過來勾搭小邱同學,或者對文章提出修改意見,共同成長。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章