當前位置:才華齋>計算機>java語言>

Java標籤、按鈕和按鈕事件簡介

java語言 閱讀(2.82W)

標籤和按鈕也許是圖形介面中最常見的兩種元件,按鈕又總是與激發動作事件有關。

Java標籤、按鈕和按鈕事件簡介

 標籤

標籤(JLabel)是最簡單的Swing元件。標籤物件的作用是對位於其後的介面元件作說明。可以設定標籤的屬性,即前景色,背景色、字型等,但不能動態地編輯標籤中的文字。

程式關於標籤的基本內容有以下幾個方面:

1.宣告一個標籤名;

2.建立一個標籤物件;

3.將標籤物件加入到某個容器。

JLabel類的主要構造方法是:

el ():構造一個無顯示文字的標籤;

el (String s):構造一個顯示文字為s的標籤;

el(String s, int align):構造一個顯示文字為s的標籤。align為顯示文字的水平方式,對齊方式有三種: 左對齊:

中心對齊:ER

右對齊:T

JLabel類的其他常用方法是:

ext(String s):設定標籤顯示文字;

ext():獲取標籤顯示文字;

ackground(Color c):設定標籤的背景顏色,預設背景顏色是容器的背景顏色;

oreground(Color c):設定標籤上的文字的顏色,預設顏色是黑色。

按鈕

按鈕(JButton)在介面設計中用於激發動作事件。按鈕可顯示文字,當按鈕被啟用時,能激發動作事件。

JButton常用構造方法有:

ton():建立一個沒有標題的按鈕物件;

ton(String s):建立一個標題為s的按鈕物件。

JButton類的其他常用方法有:

abel(String s):設定按鈕的標題文字。

abel():獲取按鈕的標題文字。

nemonic(char mnemonic):設定熱鍵

oolTipText(String s):設定提示文字。

nabled(boolean b):設定是否響應事件

olloverEnabled(boolean b):設定是否可滾動。

ctionListener(ActionListener aL):向按鈕新增動作監視器。

veActionListener(ActionListener aL):移動按鈕的監視器。

按鈕處理動作事件的基本內容有以下幾個方面:

1.與按鈕動作事件相關的介面是ActionListener,給出實現該介面的類的'定義;

2.宣告一個按鈕名;

3.建立一個按鈕物件;

4.將按鈕物件加入到某個容器;

5.為需要控制的按鈕物件註冊監視器,對在這個按鈕上產生的事件實施監聽。如果是按鈕物件所在的類實現監視介面,註冊監視器的程式碼形式是

複製程式碼 程式碼如下:

addActionListener(this);

參見【例 11-3】,如果是別的類A的物件a作為監視器,類A必須實現ActionListener介面,完成監視器註冊需用以下形式的兩行程式碼:

複製程式碼 程式碼如下:

A a = new A(); //建立類A的例項a

addActionListener(a); //用物件a作為監視器對事件進行監視。

6.在實現介面ActionListener的類中,給出處理事件的方法的定義:

複製程式碼 程式碼如下:

public void actionPerformed(ActionEvent e);

在處理事件的方法中,用獲取事件源資訊的方法獲得事件源資訊,並判斷和完成相應處理。獲得事件源的方法有:方法 getSource()獲得事件源物件;方法getActionCommand()獲得事件源按鈕的文字資訊。

【例 11-3】處理按鈕事件例項,應用程式定義了一個視窗,視窗內設定兩個按鈕,當點選Red按鈕時,視窗的背景色置成紅色;點選Green按鈕時,視窗的背景色置成綠色。

import g.*;import .*;import t.*; public class J503{ public static void main(String[]args){ ButtonDemo myButtonGUI=new ButtonDemo();//宣告並建立按鈕物件 isible(true); } } class ButtonDemo extends JFrame implements ActionListener{ public static final int Width=250; public static final int Height=200; ButtonDemo(){ setSize(Width,Height); setTitle("按鈕事件樣例"); Container conPane=getContentPane(); ackground(); ayout(new FlowLayout());//採用FlowLayout佈局 JButton redBut=new JButton("Red"); ctionListener(this);//給Red按鈕註冊監視器 (redBut);//在視窗新增Red按鈕 JButton greenBut=new JButton("Green"); ctionListener(this);//給Green按鈕註冊監視器 (greenBut);//在視窗新增Green按鈕 } public void actionPerformed(ActionEvent e){//實現介面處理事件的方法 Container conPane=getContentPane(); if(ctionCommand()ls("Red"))//是Red按鈕事件 ackground(); else if(ctionCommand()ls("Green"))//是Green按鈕事件 ackground(N); else{} } }

用滑鼠點選按鈕產生事件物件,將事件送達物件,這個過程稱為激發事件。當一個事件被送到監視器物件時,監視器物件實現的介面方法被呼叫,呼叫時系統會提供事件物件的引數。程式中雖然沒有呼叫監視器方法的的程式碼,但是程式做了兩件事:第一,指定哪一個物件是監視器,它將響應由按鈕的激發的事件,這個步驟稱為監視器註冊。第二,必須定義一個方法,當事件送到監視器時,這個方法將被呼叫。程式中沒有呼叫這個方法的程式碼,這個呼叫是系統執行的。

在上面的程式中,程式碼:

ctionListener(this);

註冊this作為redBut按鈕的監視器,隨後的程式碼也註冊this作為greenBut按鈕的監視器。在上述的程式中,this就是當前的ButtonDemo物件myButtonGUI。這樣,ButtonDemo類就是監視器物件的類,物件MyButtonGUI作為兩個按鈕的監視器。在類ButtonDemo中有監視器方法的實現。當一個按鈕被點選時,系統以事件的激發者為引數,自動呼叫方法actionPerformed ()。

元件不同,激發的事件種類也不同,監視器類的種類也不同。按鈕激發的事件稱為action事件,相應的監視器稱為action監視器。一個action監視器物件的型別為ActionListener,類要實現ActionListener介面。程式體現這些內容需要做到兩點:

1.在類定義的首行接上程式碼implements ActionListener;

2.類內定義方法actionPerformed ()。

前面程式中的類ButtonDemo正確地做到了這兩點。

每個介面元素當激發事件時,都有一個字串與這個事件相對應,這個字串稱為action命令。用程式碼 ctionCommand()就能獲取action事件引數e的命令字串,據此,方法actionPerformed()就能知道是哪一個按鈕激發的事件。在預設情況下,按鈕的命令字串就是按鈕上的文字。如有必要可以用方法 setActionCommand()為介面元件設定命令字串。

以上所述就是本文的全部內容了,希望大家能夠喜歡。