gpt4 book ai didi

java - mouseEntered 不起作用

转载 作者:行者123 更新时间:2023-12-02 04:57:37 26 4
gpt4 key购买 nike

我有一个由 5 个 JLabel 对象组成的数组,并且我已向所有对象添加了鼠标监听器,在 mouseEntered() 函数中,我将标签设为不透明(true)更改其背景颜色,但此代码无法正常工作,请帮忙。

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class A extends MouseAdapter {
JFrame frame = new JFrame();
JLabel label[] = new JLabel[5];

A() {
frame.setSize(500,500);
frame.setLayout(new FlowLayout());
for(int i=0; i<5; i++) {
label[i] = new JLabel("LABEL: "+i);
label[i].setBackground(Color.BLACK);
label[i].addMouseListener(this);
frame.add(label[i]);
}
frame.setVisible(true);
}

public static void main(String arg[]) {
new A();
}

@Override
public void mouseEntered(MouseEvent entered) {
if(entered.getSource().equals(label))
((JLabel)entered.getComponent()).setOpaque(true);
}
}

最佳答案

可能的原因是if(entered.getSource().equals(label))

事件的源永远不会是 label 数组,而是它的元素之一。更好的条件可能是 if(entered.getSource() instanceof JLabel)

更改标签的不透明度属性后,您还需要 entered.getComponent().repaint();

关于java - mouseEntered 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28620583/

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