gpt4 book ai didi

java - 鼠标监听器不工作

转载 作者:太空宇宙 更新时间:2023-11-04 13:17:59 25 4
gpt4 key购买 nike

我的鼠标已释放无法工作。在我的代码中,另一个 JPanel(p) 中有两个 JPanel(p1 和 p2)。有两个按钮,分别为红色和绿色。我的代码应该像有人单击按钮一样工作,面板应该动态更改。但不幸的是,当我运行程序时,按钮“红色”和“绿色”没有响应。在这里我添加了我的代码。谢谢。

package animat;

import java.awt.Color;
import java.awt.event.*;

import javax.swing.*;



public class Animat extends JFrame{

Animat(){


JFrame j=new JFrame();

j.setSize(400,400);
j.setVisible(true);
JPanel p=new JPanel();

p.setSize(300,400);
p.setLayout(null);
p.setBackground(Color.BLACK);
p.setVisible(true);
j.add(p);

JPanel p1=new JPanel();
p1.setBounds(0,50,400,350);
p1.setBackground(Color.red);
p1.setVisible(true);
p.add(p1);

JPanel p2=new JPanel();
p2.setBounds(0,50,400,350);
p2.setBackground(Color.GREEN);
p2.setVisible(true);
p.add(p2);

JButton b=new JButton("RED");
b.setBounds(0,0,100,50);
b.setVisible(true);
p.add(b);

JButton b1=new JButton("GREEN");
b1.setBounds(100,0,100,50);
b1.setVisible(true);
p.add(b1);

b.addMouseListener(new MouseAdapter(){
public void MouseReleased(MouseEvent e){
p.removeAll();
p.repaint();
p.revalidate();
p.add(p1);
}
});

b1.addMouseListener(new MouseAdapter(){
public void MouseReleased(MouseEvent e){
p.removeAll();
p.repaint();
p.revalidate();
p.add(p2);
}
});
}
public static void main(String[] args) {
new Animat();
}

}

最佳答案

您无意中没有覆盖您想要覆盖的功能。

使用此代码:

b1.addMouseListener(new MouseAdapter(){
public void MouseReleased(MouseEvent e){
p.removeAll();
p.repaint();
p.revalidate();
p.add(p2);
}
});

您正在添加一个新函数,而不是覆盖 mouseReleased 函数。因此它永远不会被调用。只需将函数名称更改为小写字母开头即可。

注意#1:您可以通过向您的函数添加 @Override 注释来验证我下面的陈述。 IDE 会告诉您实际上并没有覆盖任何内容(由于拼写错误)注意#2:您可能应该使用 mousePressed。在这种情况下更符合逻辑(但你的代码也可以工作)

关于java - 鼠标监听器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33365500/

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