用java實現以下QQ登錄窗口的具體步驟。
使用工具:eclipse
一:QQ登錄界面
需要用到的容器組件:
頂級容器JFrame
標籤組件JLable
輸入框組件JTextField
密碼輸入框JPasswordField
按鈕JButton
以下代碼可連同註釋複製到eclipse中運行,需要先創建同名包和類
package jiemian;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
//1.創建名爲Login的類,在該類中創建一個名爲InitUI的方法,圖形界面就在此方法中實現
public class Login {
public static void main(String[] args) {
Login log=new Login();
log.InitUI();
}
public void InitUI()
{
//1.1創建一個頂級容器,也就是空白窗口,併爲此窗口設置屬性(窗口名稱,大小,顯示位置,關閉設置)
// 用JFrame創建一個名爲frame的頂級容器,需要添加的包名爲javax.swing.JFrame
JFrame frame=new JFrame();
//設置窗口名稱
frame.setTitle("Login");
//設置窗口大小
frame.setSize(540,427);
//設置窗口位於屏幕中央
frame.setLocationRelativeTo(null);
//參數爲3時,表示關閉窗口則程序退出
frame.setDefaultCloseOperation(3);
//1.2設置窗體上組件的佈局,此處使用流式佈局FlowLayout,流式佈局類似於word的佈局
//用FlowLayout創建一個名爲f1的對象,需要添加的包名爲java.awt.FlowLayout,其中LEFT表示左對齊,CENTER表示居中對齊,RIGHT表示右對齊
FlowLayout f1=new FlowLayout(FlowLayout.LEFT);
//frame窗口設置爲f1的流式左對齊
frame.setLayout(f1);
//1.3在窗體上添加圖片,文字
//在添加圖片之前,先把圖片從磁盤中加載到內存中來,使用ImageIcon,需要添加的包名爲javax.swing.ImageIcon,括號中爲圖片路徑,路徑中要使用”/”,不能使用”\”
ImageIcon imag1=new ImageIcon("H:/1.png");
//JLabel可在頂級容器中添加圖片文字,需要添加的包名javax.swing.JLabel,此處將上面加載的圖片創建爲一個JLabel對象
JLabel pic1=new JLabel(imag1);
//將創建的圖片對象添加到 窗口上
frame.add(pic1);
//創建一個空的JLabel,它的長度寬度爲110,30,因爲窗口是流式左對齊,爲了將”賬號”一欄添加在正中間,所以左側由空的JLabel填充
JLabel name1=new JLabel();
//設置空JLabel長度大小,此處不能使用setSize設置大小,setSize只能設置頂級容器大小,此處用setPreferredSize,Dimension給出大小,需要添加的包名爲java.awt.Dimension.
name1.setPreferredSize(new Dimension(110,30));
//將空JLabel添加入窗口
frame.add(name1);
//同上,此處添加的不是空JLabel,而是內容爲“賬號”的JLabel
JLabel name=new JLabel("賬號:");
frame.add(name);
//JTextField在窗口上添加一個可輸入可見文本的文本框,需要添加的包名爲javax.swing.JTextField.
JTextField nametext=new JTextField();
//設置文本框大小
nametext.setPreferredSize(new Dimension(220, 30));
//添加到窗口上
frame.add(nametext);
//同name1
JLabel name2=new JLabel();
name2.setPreferredSize(new Dimension(110,30));
frame.add(name2);
//同name1
JLabel name3=new JLabel();
name3.setPreferredSize(new Dimension(110,30));
frame.add(name3);
//同name
JLabel password=new JLabel("密碼:");
frame.add(password);
//JPasswordField創建一個密碼文本框,裏面輸入的文本是不可見的,其他同nametext
JPasswordField passwordtext=new JPasswordField();
passwordtext.setPreferredSize(new Dimension(220, 30));
frame.add(passwordtext);
//同name1
JLabel name4=new JLabel();
name4.setPreferredSize(new Dimension(110,30));
frame.add(name4);
//同name1
JLabel name5=new JLabel();
name5.setPreferredSize(new Dimension(220,30));
frame.add(name5);
//JButton創建一個可點擊的按鈕,按鈕上可顯示文本圖片
JButton bu=new JButton("登錄");
bu.setPreferredSize(new Dimension(80,30));
frame.add(bu);
//設置窗口可見,此句一定要在窗口屬性設置好了之後才能添加,不然無法正常顯示
frame.setVisible(true);
}
}