通过鼠标窗体事件操作

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---鼠标放开事件");
}
});
}
}




图三好丑,,添加一个关闭按钮吧,但还是好丑啊


猜你喜欢

转载自blog.csdn.net/weixin_41585557/article/details/80642368