[引言]編程
咱們在學習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);
// 循環 多個 按鈕控件 (非固定代碼,僅做爲監聽器演示)
for( int 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;
}
實例化窗體對象而且運行後,測試各種事件效果以下: