小博老師解析Java核心技術 ——JSwing鼠標監聽事件

[引言]編程

咱們在學習Java編程的時候,若是須要開發客戶端窗體類型的程序,能夠使用JDK中的awt和swing庫。本文開始小博老師就繼續爲你們演示Java窗體編程中的各種監聽器,今天主要講解鼠標監聽器中的事件。學習

 

[步驟閱讀一]鼠標監聽器事件列表測試

監聽器的主要做用,是爲窗體中的控件增長與用戶行爲之間的交互功能,使得整個窗體應用程序擁有活躍的元素,增強用戶體驗性。code

其中經常使用監聽器主要分爲:鼠標監聽器(MouseListener)、鼠標手勢監聽器(MouseMotionListener)、鍵盤監聽器(KeyListener)、窗體監聽器(WindowListener)、行爲監聽器(ActionListener)等頂層接口。對象

今天小博老師就爲你們主要講解鼠標監聽器(MouseListener),咱們首先來了解一下鼠標監聽器能夠與用戶的哪些行爲進行交互,它們均以接口中的方法來封裝:blog

void mouseReleased(MouseEvent e):鼠標釋放事件接口

void mousePressed(MouseEvent e):鼠標按下事件事件

void mouseExited(MouseEvent e):鼠標離開事件ip

void mouseEntered(MouseEvent e):鼠標進入事件開發

void mouseClicked(MouseEvent e):鼠標點擊事件

這些方法均擁有一個形參(MouseEvent),該參數是鼠標事件對象,其中包含了當前事件觸發時,真個事件的各種數據信息,好比:觸發事件的控件、觸發事件的按鈕(左鍵仍是右鍵),觸發事件的模式(單擊仍是雙擊),觸發事件時鼠標的座標等等。

 

[步驟閱讀二]鼠標監聽器的使用

接下來,小博老師經過一個簡單的按鈕,帶你們一塊兒體驗一下鼠標監聽器的使用方式,核心代碼以下:

public class MenuFrame extends JFrame{

public MenuFrame(){

setBounds(100, 20, 600, 400);

setLayout(null);

// 實例化 標籤控件

lb = new JLabel();

lb.setBounds(20, 50, 200, 25);

add(lb);

// 循環 多個 按鈕控件 (非固定代碼,僅做爲監聽器演示)

forint i = 0 ; i <= 4 ; i++ ){

// 實例化 按鈕控件

JButton bt = new JButton("按  鈕");

bt.setBounds(20+ 85 * i , 20, 80, 25);

add( bt );

bt.setBackground(new Color(230,230,230));

bt.setForeground(new Color(0,0,0));

bt.setName("按鈕"+(i+1));

// 爲 按鈕控件 添加鼠標監聽器

bt.addMouseListener(new MouseListener() {

// 鼠標釋放事件

public void mouseReleased(MouseEvent e) {

// 獲取當前事件源控件(按鈕控件)

JButton src = (JButton)e.getSource();

// 恢復事件源控件(按鈕控件)外觀樣式

src.setBackground(new Color(100,150,100));

src.setForeground(new Color(255,255,255));

}

// 鼠標按下事件

public void mousePressed(MouseEvent e) {

// 獲取當前事件源控件(按鈕控件)

JButton src = (JButton)e.getSource();

// 改變事件源控件(按鈕控件)外觀樣式

src.setBackground(new Color(100,100,100));

src.setForeground(new Color(255,100,100));

}

// 鼠標離開事件

public void mouseExited(MouseEvent e) {

// 獲取當前事件源控件(按鈕控件)

JButton src = (JButton)e.getSource();

// 恢復事件源控件(按鈕控件)外觀樣式

src.setBackground(new Color(230,230,230));

src.setForeground(new Color(0,0,0));

}

// 鼠標進入事件

public void mouseEntered(MouseEvent e) {

// 獲取當前事件源控件(按鈕控件)

JButton src = (JButton)e.getSource();

// 改變事件源控件(按鈕控件)外觀樣式

src.setBackground(new Color(100,150,100));

src.setForeground(new Color(255,255,255));

}

// 鼠標點擊事件

public void mouseClicked(MouseEvent e) {

// 獲取當前事件源控件(按鈕控件)

JButton src = (JButton)e.getSource();

// 在 標籤控件 中 顯示當前事件源控件(按鈕控件)名稱

lb.setText("當前被點擊的是:"+src.getName());

}

});

}

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

private JLabel lb;

}

實例化窗體對象而且運行後,測試各種事件效果以下:





相關文章
相關標籤/搜索