1. 程式人生 > >通過滑鼠窗體事件操作

通過滑鼠窗體事件操作

package MouseEvent01;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;




/*
 * 1.窗體新增文案提示,
 * 2.滑鼠上移按鈕,新增提示語,滑鼠移除,提示語消失
 * 3.點選按鈕,按鈕消失、原窗體消失
 * 4.點選按鈕,彈出新的彈窗,
 * 5.並可以對新的彈窗再進行操作
 * 6.區分滑鼠左鍵右鍵的動作,作出不同的反應,,
 * 問題:新的彈窗再次操作
 * /
 */
public class MouseEvent01 {
public static void main(String [] args) {
final JFrame f = new JFrame ("MouseEvent");
//設定窗口布局
f.setLayout(new FlowLayout());
f.setSize(300,200);
f.setLocationRelativeTo(null);
f.setVisible(true);

//窗體新增提示語
Label lable = new Label();
lable.setText("歡迎到來");
lable.setBounds(100, 70, 80, 30);
f.add(lable);

//建立一個按鈕
JButton but = new JButton("點選");//必須使用Jbutton,
but.setBounds(100, 100, 80, 30);
f.add(but);

//為按鈕新增滑鼠事件監聽
but.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("MouseClicked---滑鼠完成點選事件");
//判斷滑鼠多事件,左鍵,右鍵,滾輪
//解決方案,定義多個常量來標識滑鼠動作
if(e.getButton()== e.BUTTON1) {
System.out.println("滑鼠左擊事件");
//左鍵點選按鈕,彈出新的彈窗
JFrame frame = new JFrame("Hello");
    frame.setLayout(null);
    frame.setBounds(250, 250, 300, 200);
//    frame.setSize(100, 100);//單獨設定視窗大小
//    frame.setLocationRelativeTo(null);//設窗體的位置居中
    frame.setBackground(Color.BLUE);
    frame.setVisible(true);
    JButton but1 = new JButton("關閉");//必須使用Jbutton,
but1.setBounds(100, 100, 80, 30);
frame.add(but1);
lable.setText("Hello");//彈出後的彈窗提示的文案,lable賦予的值不會再被改變,然鵝有bug,,
    frame.add(lable);
    
    //點選以後原有的原有的窗體關閉
//f.dispose();
   //點選關閉按鈕以後,按鈕消失,只有讓按鈕消失,點選右鍵才不會影響Frame彈窗文字,封閉按鈕;或者可以建立兩個變數也行,互不干擾
but.setVisible(false);
//lable.setText("請繼續操作");
    
}
if(e.getButton() == e.BUTTON3) {
System.out.println("滑鼠右擊事件");
//點選以後,提示語變化
lable.setText("請左鍵點選按鈕");
}
if(e.getButton() == e.BUTTON2) {
System.out.println("滑鼠中間點選事件");


}

}


@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
System.out.println("MouseEntered---滑鼠進入按鈕區域事件");
//but.setText("點我");
//滑鼠上移,按鈕出現提示文字
but.setToolTipText("點我");
}


@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
System.out.println("MouseExited---滑鼠移除按鈕區事件");
}


@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
System.out.println("MousePressed---滑鼠按下事件");
}


@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
System.out.println("MouseReleased---滑鼠放開事件");
}
});
}
}



圖三好醜,,新增一個關閉按鈕吧,但還是好醜啊