1. 程式人生 > >GUI程式設計基礎學習(二)——標籤、文字框、按鈕

GUI程式設計基礎學習(二)——標籤、文字框、按鈕

標籤JLabel

JLabel是一種常用的元件,一般用於顯示固定的文字資訊,同時它也可以顯示圖片:

JLabel常用構造方法:

①JLabel() 建立無影象並且其標題為空字串的 JLabel。

②JLabel(Icon image) 建立具有指定影象的 JLabel 例項。

③JLabel(Icon image, int horizontalAlignment) 建立具有指定影象和水平對齊方式的 JLabel 例項。

④JLabel(String text) 建立具有指定文字的 JLabel 例項。

⑤JLabel(String text, Icon icon, int horizontalAlignment)

 建立具有指定文字、影象和水平對齊方式的 JLabel 例項。

⑥JLabel(String text, int horizontalAlignment) 建立具有指定文字和水平對齊方式的 JLabel 例項。

JLabel常用方法:

①getHorizontalAlignment() 返回標籤內容沿 X 軸的對齊方式。

②getHorizontalTextPosition() 返回標籤的文字相對其影象的水平位置。

③getIcon() 返回該標籤顯示的圖形影象(字形、圖示)。 

④getText() 返回該標籤所顯示的文字字串。

⑤setHorizontalAlignment(int alignment) 設定標籤內容沿 X 軸的對齊方式。

⑥setHorizontalTextPosition(int textPosition) 設定標籤的文字相對其影象的水平位置。

⑦setIcon(Icon icon) 定義此元件將要顯示的圖示。

⑧setText(String text) 定義此元件將要顯示的單行文字。

⑨setVerticalAlignment(int alignment) 設定標籤內容沿 Y 軸的對齊方式。

⑩setVerticalTextPosition(int textPosition)

 設定標籤的文字相對其影象的垂直位置。

文字框(JTextField和JPasswordField)

JTextField元件用於建立文字框。文字框一般是用來接收單行文字資訊輸入的區域。當用戶輸入文字資訊後,如果為JTextField物件新增事件處理,按Enter鍵會激發一定的動作。

JTextField常用構造方法:

①JTextField():建立一個空的文字框。

②JTextField(String text):建立一個具有初始文字資訊text的文字框。

③JTextField(String text,int columns):建立一個具有初始文字資訊text以及指定列數的文字框。

JTextField常用方法:

①void setText(String text):設定文字框顯示內容。

②String getText():獲取文字框顯示內容。

JPasswordField是JTextField類的子類,是一種特殊的文字框。和文字框一樣,它也是用來接收單行文字資訊的輸入區域,但會用回顯字串替代掉輸入的文字資訊。因此JPasswordField也叫做密碼文字框。JPasswordField預設的回顯字元是*,使用者可以自行設定回顯字元。

JPasswordField常用構造方法:

①JPasswordField():建立一個空的密碼文字框。

②JPasswordField(String text):建立一個具有初始文字資訊的密碼文字框。

③JPasswordField(String text.int columns):建立一個具有初始文字資訊和指定列數的密碼文字框。

④JPasswordField(int columns):建立一個指定列數的密碼文字框。

JPasswordField常用方法:

①boolean echoCharIsSet():獲取是否設定了回顯字元的狀態。

②void setEchoChar(char c):設定回顯字元。

③char getEcho():獲取回顯字元。

④char[] getPassword():獲取密碼文字框的文字。

按鈕JButton

按鈕元件是GUI程式設計中最常用到的一種元件,它可以捕捉到使用者的單擊,同時利用按鈕事件處理機制響應使用者的請求。JButton是Swing提供的按鈕元件,按鈕上面不僅可以顯示文字資訊,也可以用來顯示圖示。

JButton常用構造方法:

①JButton(Icon icon):建立一個帶圖示的按鈕。

②JButton(String text):建立一個帶字元的按鈕。

③JButton(String text,Icon icon):建立一個既帶圖示又帶字元的按鈕。

JButton常用方法:

①setText(String text):設定按鈕的文字。

②setIcon(Icon defaultIcon):設定按鈕在預設狀態下顯示的圖示。

③setRolloverIcon(Icon rolloverIcon):設定游標移動到按鈕上方時顯示的圖示。

④setPressedIcon(Icon pressedIcon):設定當按鈕被按下時顯示的圖示。

⑤setContentAreaFilled(boolean b):設定按鈕的背景為透明,設定為true時按鈕將會繪製內容區域。如果希望有一個透明的按鈕。那麼應該將此屬性設定為false。預設繪製內容區域。

⑥setBorderPainted(boolean b):設定為不繪製按鈕的邊框。當此屬性設定成false時表示不繪製,預設為繪製。

綜合案例:利用JLabel、JTextField、JPassword、JButton實現一個登入框,使用者輸入賬號密碼,點選登入按鈕,如果使用者名稱和密碼正確,提示登入成功。

使用兩個JLabel做賬號框和密碼框的左側的標籤,使用JTextField做賬號框,PasswordField做密碼框,JButton做登入按鈕,當用戶輸入admin為賬號,12345為密碼時,提示登入成功,否則提示登入失敗並清空框內資訊。

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;


public class Client extends JFrame{

	public Client(){
		JLabel label_account = new JLabel("賬號:",JLabel.CENTER);//標籤
		JLabel label_password = new JLabel("密碼:",JLabel.CENTER);//標籤
		JTextField account = new JTextField(10);//指定十列寬度的文字框
		JPasswordField password = new JPasswordField(10);//建立十列寬度的密碼框
		JButton submit = new JButton("登入");//建立登入按鈕
		this.getContentPane().setLayout(new BorderLayout());//設定窗體內建面板佈局格式
		JPanel centerPanel = new JPanel(new GridLayout(2,2,1,1));//設定中心面板佈局格式
		centerPanel.add(label_account);//新增元件
		centerPanel.add(account);
		centerPanel.add(label_password);
		centerPanel.add(password);
		this.getContentPane().add(centerPanel,BorderLayout.CENTER);//新增中心面板到窗體內建面板中心
		this.getContentPane().add(submit,BorderLayout.SOUTH);//新增登入按鈕到窗體內建面板南部
		this.pack();//自適應
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//當用戶點選窗體右上角x時自動推出程式
		this.setLocationRelativeTo(null);//讓窗體顯示在螢幕正中間
		//給按鈕新增點選事件
		submit.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e){
				String s1 = account.getText();//獲取輸入的賬號資訊
				String s2 = password.getText();//獲取輸入的密碼資訊
				if(s1.equals("admin")&&s2.equals("12345")){//登入成功
					JOptionPane.showMessageDialog(null, "登入成功");//彈提示框
				}else{//登入失敗
					JOptionPane.showMessageDialog(null, "登入失敗,請重新輸入你的賬號密碼");//彈提示框
					account.setText("");//清空賬號
					password.setText("");//清空密碼
				}
			}
		});
		
		this.setVisible(true);//顯示窗體
	}
	
	public static void main(String[] args) {
		new Client();
	}

}

執行效果: