MouseListener无法正常工作

时间:2015-10-27 10:30:47

标签: java swing mouselistener

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(); 
   }

}

1 个答案:

答案 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。在这种情况下更合乎逻辑(但您的代码也可以使用)