通過滑鼠窗體事件操作
阿新 • • 發佈:2019-01-27
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---滑鼠放開事件");
}
});
}
}
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---滑鼠放開事件");
}
});
}
}
圖三好醜,,新增一個關閉按鈕吧,但還是好醜啊