Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我不能在mouseEntered方法中获取JButton的名称?_Java - Fatal编程技术网

Java 为什么我不能在mouseEntered方法中获取JButton的名称?

Java 为什么我不能在mouseEntered方法中获取JButton的名称?,java,Java,我在表单上有一个按钮,我想检测鼠标是否在按钮上方。如果按钮位于表单上方,我希望闪烁一个背景颜色为完全红色的JLabel,以指示停止或警告或类似内容 e.getComponent()返回调用组件,因此在本例中,is应该是Save Jbutton。但是名称是空的 当我有了这个名字后,我会检查source.equals(myButton)是否正确,然后将标签放在JFrame上 代码: getName()不是按钮的标签,您需要调用getText()。 e、 g 此外,如果要将标签文本与按钮本身进行比较,

我在表单上有一个按钮,我想检测鼠标是否在按钮上方。如果按钮位于表单上方,我希望闪烁一个背景颜色为完全红色的JLabel,以指示停止或警告或类似内容

e.getComponent()返回调用组件,因此在本例中,is应该是Save Jbutton。但是名称是空的

当我有了这个名字后,我会检查source.equals(myButton)是否正确,然后将标签放在JFrame上

代码:

getName()
不是按钮的标签,您需要调用
getText()

e、 g

此外,如果要将标签文本与按钮本身进行比较,则需要与标签进行比较:

// wrong
System.out.println("entered:" + source.getName());
if (source.equals("btnSave")) {

// right
System.out.println("entered:" + source.getText());
if (source.getText().equals("btnSave")) { 
编辑 我没注意到你没有公布消息来源。在源对象上运行特定于
JButton
的方法之前,需要将其显式转换为正确的类,如下所示:

    final JButton source = (JButton) e.getComponent();

什么时候设置JButton的名称?如果直接打印JButton的getName()方法返回的值,会发生什么?
// wrong
System.out.println("entered:" + source.getName());
if (source.equals("btnSave")) {

// right
System.out.println("entered:" + source.getText());
if (source.getText().equals("btnSave")) { 
    final JButton source = (JButton) e.getComponent();