gpt4 book ai didi

java - 仅当在 Java 中按下鼠标时如何让 mouseEntered 执行

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:31:24 26 4
gpt4 key购买 nike

我只想在当前按下鼠标时执行 mouseEntered,基本上是这样的:

    @Override
public void mouseEntered(MouseEvent e) {
if(e.mouseDown()){
//Do stuff
}
}

我可以这样做吗,或者我需要一个鼠标 Action 监听器还是什么?

谢谢!

编辑:抱歉应该更清楚一点,但我需要在鼠标进入组件之前按下它,就像按住鼠标并将鼠标悬停在组件上一样激活监听器

最佳答案

您可能想要评估 MouseEvent API 以查看可用的方法,因为我认为您会在那里找到您的解决方案:

  myComponent.addMouseListener(new MouseAdapter() {

@Override
public void mouseEntered(MouseEvent mEvt) {
System.out.println("mouse entered");

if (mEvt.getModifiers() == MouseEvent.BUTTON1_MASK) {
System.out.println("Mouse dragging as entered");
}

}

});

例如:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MouseEnteredPressed extends JPanel {
private static final int SIDE = 500;

public MouseEnteredPressed() {
setLayout(new GridBagLayout());
JLabel label = new JLabel("Hovercraft Rules The World!");
label.setFont(label.getFont().deriveFont(Font.BOLD, 24));
label.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY));
add(label);

label.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent mEvt) {
System.out.println("mouse entered");

if (mEvt.getModifiers() == MouseEvent.BUTTON1_MASK) {
System.out.println("Mouse dragging as entered");
}
}
});

}

@Override
public Dimension getPreferredSize() {
return new Dimension(SIDE, SIDE);
}

private static void createAndShowGui() {
MouseEnteredPressed mainPanel = new MouseEnteredPressed();

JFrame frame = new JFrame("MouseEnteredPressed");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}

关于java - 仅当在 Java 中按下鼠标时如何让 mouseEntered 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10569351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com