My Mouse Released无效。 在我的代码中,另一个JPanel(p)中有两个JPanel(p1和p2)。 并且有两个名为RED和GREEN的按钮。我的代码应该像有人点击按钮一样工作,面板应该动态更改。 但不幸的是,当我运行我的程序时,Button" RED"和" GREEN"没有回应。我在这里添加了我的代码。 谢谢。
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();
}
}
答案 0 :(得分:0)
你是 - 不小心 - 不会覆盖你想要的功能。
使用此代码:
b1.addMouseListener(new MouseAdapter(){
public void MouseReleased(MouseEvent e){
p.removeAll();
p.repaint();
p.revalidate();
p.add(p2);
}
});
您正在添加新功能,而不是覆盖mouseReleased
功能。因此永远不会被称为。只需将函数名称更改为以小写字母开头即可。
注意#1:您可以通过在函数中添加@Override
注释来验证我的声明。你的IDE会告诉你,你实际上并没有覆盖任何东西(由于错字)
注意#2:您可能应该使用mousePressed。在这种情况下更合乎逻辑(但您的代码也可以使用)